记一次Docker安装MySQL的踩坑记录
1.开端
由于我的番茄小说下载API的V4版本改用了MySQL数据库,为了方便部署,就想把MySQL和程序用Docker打包起来
经过一系列准备,终于打包起来并成功运行了
但是,奇怪的是,我发现MySQL连接特别缓慢,需要将近30秒!
无论是我使用Navicat连接还是docker内程序的连接都是这样
这就导致请求的返回非常缓慢,甚至超时报错
直接使用官方镜像测试也是如此
系统环境:WSL2 镜像网络模式
MySQL镜像版本:8.0-debian
2.查找解决方案
我在Google上以 docker mysql 慢
为关键词搜索,得到的回答是
由于docker镜像安装时安装的是最小容器,因此缺少DNS解析等某些模块,所以连接时会出现连接超慢的问题
需要修改MySQL配置文件解决
于是我在我的Dockerfile中加入了:
1 | RUN echo "skip-name-resolve" >> /etc/mysql/my.cnf |
理论上这样可以成功解决问题,但是经过测试,问题仍然存在
我以为是设置没有成功,就换官方镜像,用加 --skip-name-resolve
参数启动的方式尝试
结果依然没有成功
3.解决方式
就在我想要放弃将MySQL和程序用Docker打包起来时
突然想到,我连接使用的主机名都是 localhost
,是不是有可能是因为这个造成的问题
秉持着死马当活马医的心态,我把Navicat的 localhost
换成了127.0.0.1
点击“测试连接”,竟然成功的秒连了
至此,问题解决
4.总结
这就是个由于DNS解析造成的问题,如果设置 skip-name-resolve
无效
就像我一样尝试一下改成 127.0.0.1
,可能就解决了
5.参考资料
Docker中Mysql连接很慢问题解决_docker mysql连接很慢-CSDN博客
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 星隅の小站!
评论