一、创建MySQL配置目录
mkdir -p /data/mysql/data /data/mysql/logs
二、创建MySQL8镜像
docker run -p 3306:3306 --name mysql8 --restart always \
-v /data/mysql/logs:/logs \
-v /data/mysql/data:/var/lib/mysql \
-v --privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_BIND_ADDRESS=0.0.0.0 \
-d mysql:8.0
三、安装过程中遇到的问题:
3.1. 修改mysql 8.0默认时区数
SHOW VARIABLES LIKE ‘%time_zone';
time_zone说明mysql使用system的时区,system_time_zone说明system使用CST时区
例如,设置时区为UTC:
SET GLOBAL time_zone = '+08:00';
或者设置为中国时区:
SET GLOBAL time_zone = 'Asia/Shanghai';
3.2.认证插件‘caching_sha2_password’无法加载
使用docker部署的mysql8.0再使用Navicat连接myslq报错Authentication plugin ‘xxxxxxx’ cannot be loaded:XXXXXX (无法加载身份验证插件)
原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
解决办法:更改加密规则
1.进入容器命令(此处mysql8为我的mysql容器名称)
docker exec -it mysql8 bash
2.选择mysql数据库
mysql> use mysql;
3.更新加密方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
4.刷新权限
flush privileges;