Docker部署mysql详细步骤及避坑

1.拉取镜像

sudo docker pull mysql

不指定版本号默认拉取最新版本,指定版本号示例如下

sudo docker pull mysql:5.7

可去dockerHub官网 https://registry.hub.docker.com/ 查找所需的镜像,无需登录,直接搜索

Docker部署mysql详细步骤及避坑插图

找到mysql后选择Tags页面,查找所需版本,复制拉取命令

Docker部署mysql详细步骤及避坑插图1

2.创建实例

sudo docker run -d -p 3306:3306 -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:latest

-p 3306:3306
映射端口
-v /usr/local/mysql/conf:/etc/mysql/conf.d
挂载目录,冒号(:)前为宿主机目录,后为docker内部目录
-e MYSQL_ROOT_PASSWORD=123456
设置root用户密码
–name mysql
指定容器名称
mysql:latest
指定镜像及版本

3.检查部署是否成功

docker ps

看到运行实例表示部署成功

Docker部署mysql详细步骤及避坑插图2

4.调整时区

docker部署mysql会出现时区不正确问题,调整时区后问题解决

Docker部署mysql详细步骤及避坑插图3

docker cp /usr/share/zoneinfo/Asia/Shanghai 47799179873e:/etc/localtime

47799179873e为容器ID,替换为你的容器ID,可用docker ps查看容器ID

5.建立链接慢

mySql会对连接的客户端进行DNS解析,导致链接慢,可通过配置关闭DNS解析。

修改容器内/etc/mysql/conf.d/mysqld.cnf文件,在最后一行添加skip-name-resolve,修改完重启容器,问题解决。

Docker部署mysql详细步骤及避坑插图4

修改方式:
(1)进入docker容器,直接用vi命令修改,若docker没有安装vi命令可采用方法2或3
进入容器

docker exec -it 容器ID /bin/bash

修改文件

vi /etc/mysql/conf.d/mysqld.cnf

(2)将容器内文件复制到本地,修改,再将修改过的文件复制回docker容器
复制docker内文件到本地,$PWD代表当前目录

docker cp 容器ID:/etc/mysql/conf.d/mysqld.cnf $PWD

修改本地文件

vi mysqld.cnf

复制修改后的文件到docker内部

docker cp $PWD/mysqld.cnf 容器ID:/etc/mysql/conf.d/mysqld.cnf

(3)直接修改本地挂载文件
查看挂载目录

docker inspect 容器ID | grep Binds -A 4

我的挂载目录如下,直接修改

Docker部署mysql详细步骤及避坑插图5

至此,所有的修改方法介绍完成,重启容器,问题解决。

6.Navicat客户端连接mySql,长时间无操作后再次查询非常慢

我安装了最新版mysql,测试过程中发现Navicat客户端10分钟无操作会断开连接,再次操作重新连接非常慢。查阅资料得知新版mysql会定期清理长时间无操作的连接以保证性能。

很多网友提供解决方案修改wait_timeout,测试无效。

解决方案:

编辑连接>高级>勾选保持连接间隔

Navicat会根据配置的时间给服务器发送心跳以保持连接,亲测有效,问题解决。

Docker部署mysql详细步骤及避坑插图6

原文链接:https://blog.csdn.net/secretdaixin/article/details/128116127?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836987416800182186383%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836987416800182186383&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-20-128116127-null-null.nonecase&utm_term=%E7%BB%BF%E8%81%94NAS

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享