1.拉取 mysql 镜像(指定版本在 mysql 后加 :5.6)
docker pull mysql
2.查看镜像
docker images
3.创建数据库容器
docker run -p 3306:3306 --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=PassWord -d mysql:5.6
如果要映射目录
docker run -p 3306:3306 --name mysql --restart=always
-v /home/mysql/conf:/etc/mysql
-v /home/mysql/logs:/var/log/mysql
-v /home/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=PassWord
-d mysql:5.6
4.查看 mysql 是否运行
docker ps
5.尝试 navicat 连接如果报错则进入 docker 添加 navicat 访问权限
1)进入 mysql docker
docker exec -it mysql bash
2)添加 navicat 权限
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'PassWord';
3)刷新权限并再次尝试 navicat 连接
FLUSH PRIVILEGES;
6.如果依然无法连接则检查防火墙是否阻止或直接关闭防火墙
systemctl stop firewalld
7.修改 /etc/mysql/my.cnf 文件时如果出现 vi command not found 则安装 vim
apt-get update apt-get install vim
8.docker 下 mysql 时区差8个小时设置方法
进入容器 docker exec -it mysql bash 登录 mysql mysql -uroot -p 查看系统时间和时区 select now(); show variables like '%time_zone%'; 如果 time_zone 时区是 SYSTEM 而不是东八区,也就是+8:00,那么修改配置文件 cat /etc/mysql/my.cnf vi /etc/mysql/my.cnf default-time-zone = '+08:00' 如果出现 vi command not found 则执行第7点 修改完成后重启 mysql 容器,再次进入 mysql 查看系统时间和时区