一、简介
操作系统:Linux CentOS 7.3 64位
docker版本:19.03.8
mysql版本:默认拉取最新版本(8.0.19)
二、实践
1、拉取镜像
docker pull mysql
查看镜像
2、创建mysql挂载文件夹conf、logs、data
mkdir /usr/local/mysql
mkdir /usr/local/mysql/conf
mkdir /usr/local/mysql/logs
mkdir /usr/local/mysql/data
3、运行容器
docker run -p 3306:3306 --name mymysql -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql
-p 3306:3306 端口映射,:前表示主机端口,:后表示容器端口。
--name mymysql 指定容器名称
-v 挂载目录,规则与端口映射相同;
-e MYSQL_ROOT_PASSWORD=123456 初始化root密码
-e TZ=Asia/Shanghai 设置时区
-d 后台运行
4、查看容器是否正常运行
docker ps
5、设置允许外部连接
①进入容器
docker exec -it mymysql /bin/bash
②进入mysql
mysql -u root -p
密码输入123456
③授权
GRANT ALL ON *.* TO 'root'@'%';
④刷新权限
flush privileges;
⑤更新加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
⑥更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
⑦刷新权限
flush privileges;
运行这七个步骤之后,我们就可以用navicat连接mysql啦。