1.拉取mysql指定版本
docker pull mysql:5.7
2. 部署容器
docker run --name mysql -d --restart=always -p 3306:3306 -v /var/lib/mysql:/data/mysql/data -v /etc/mysql/conf.d:/data/mysql/conf/conf.d -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7
--name 是启动的容器名
--restart=always 开机自启
-d 后台运行(不使用后台运行的话,xshell退出后服务就会停止)
-v 挂载文件路径 -v 容器文件路径:宿主机文件路径
-p 端口映射 -p 容器内端口:宿主机端口
-e 容器内配置,配置root账号密码为1234
最后面的mysql:5.7就是镜像名,同样,不加版本号的话会默认加一个:latest
mysql启动容器内的默认路径为 /var/lib/mysql 和 /etc/mysql/conf.d 这里也可以不做挂载,看个人习惯。
2.Navicat连接
正常来讲mysql部署完成,但是有些小伙伴会发现Navicat连接不上去,这里分享我初次部署遇到的几种情况(因为这次不是初次部署,所以相关报错图片这里不提供了,各位小伙伴自己判断排查)
①权限未分配
如果权限未分配的话,可能导致Navicat连接不上数据库或者连接上数据库,但是没法做其他操作,例如建库建表等。
这里打开我们的xshell,连接服务器进行配置:
a.首先查看运行中的容器,容器是否正常,端口是否正确映射等
docker ps
1
b.进入mysql容器,进行mysql配置
docker exec -it mysql bash
// 注意这里的mysql是指自己的mysql容器名称,不是固定的写mysql
// 进入容器后可以再次使用docker命令,例如docker ps来查看是否进入容器
// 进入容器后docker命令就用不了了,会提示错误
// 但是使用这个命令,有些小伙伴也进不去容器,这里可以试试下面这个(虽然我感觉都一样)
// docker exec -it mysql /bin/bash
1
2
3
4
5
6
c.进入数据库,修改配置
进入数据库:
mysql -uroot -p1234
1
下面的sql语句小伙伴们自己看着来,如果出现我这种情况的话就得加分号,隔行加。
-- 切换数据库
use mysql
-- 赋予权限
update user set host='%' where user='root'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
1
2
3
4
5
执行完成后,退出mysql,退出容器
// 退出mysql和退出容器都是这个命令
exit
1
2
再次使用Navicat连接试试,如果还不行重启一下docker容器,再试试,还是不行再接着往下看。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_50867577/article/details/130429269