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-getupdate
apt-get install vim
8.docker 下 mysql 时区差8个小时设置方法
进入容器
docker exec-it mysql bash
登录 mysql
mysql-uroot -p
查看系统时间和时区selectnow();
show variables like'%time_zone%';
如果 time_zone 时区是 SYSTEM 而不是东八区,也就是+8:00,那么修改配置文件
cat/etc/mysql/my.cnf
vi/etc/mysql/my.cnfdefault-time-zone = '+08:00'如果出现 vi command not found 则执行第7点
修改完成后重启 mysql 容器,再次进入 mysql 查看系统时间和时区