Docker部署MySQL容器远程连接异常:查询时丢失连接
1. 检查容器与MySQL服务状态
- 先确认容器是否正常运行:
docker ps - 若容器已停止,查看日志定位崩溃原因:
docker logs <容器ID/容器名称> - 进入容器内部,直接连接MySQL验证服务可用性:
若内部连接失败,重点排查容器磁盘空间(用docker exec -it <容器ID/容器名称> mysql -uroot -psome_passdocker system df查看)或MySQL错误日志:docker exec <容器ID/容器名称> cat /var/log/mysql/error.log
2. 重置网络转发规则
虽然端口处于监听状态,仍可能存在Docker端口转发异常,尝试重启容器重置网络:
docker restart <容器ID/容器名称>
3. 排查连接数耗尽问题
MySQL默认最大连接数有限制,若连接数耗尽会拒绝新请求:
进入容器后执行SQL命令查看:
SHOW GLOBAL STATUS LIKE 'Threads_connected'; SHOW VARIABLES LIKE 'max_connections';
如果Threads_connected接近max_connections,可临时调高限制:
SET GLOBAL max_connections = 500;
需永久生效的话,需挂载自定义MySQL配置文件到容器。
4. 验证网络拦截问题
- 检查宿主机防火墙/安全组,确认3308端口未被临时封禁:
iptables -L -n | grep 3308 firewall-cmd --list-ports | grep 3308 - 排查本地端:关闭本地防火墙、代理软件,换用其他数据库客户端(如DBeaver)测试,排除Navicat自身问题
内容的提问来源于stack exchange,提问作者saber javadi
相关产品推荐
相关产品推荐

