1. 问题现象与常见原因
在腾讯云服务器上通过Docker部署MySQL后,使用Navicat连接时可能遇到2003连接超时或10060访问拒绝错误。主要原因包括:
- Docker容器端口未正确映射到宿主机
- MySQL 8默认使用caching_sha2_password加密协议
- 服务器安全组/防火墙未开放对应端口
2. 端口映射与容器网络检查
执行以下步骤验证端口映射有效性:
- 检查容器启动命令是否包含
-p 宿主机端口:容器端口
参数,例如-p 3306:3306
- 通过
docker ps
查看容器运行状态和端口映射关系 - 在宿主机执行
telnet 127.0.0.1 宿主机端口
验证本地连通性
3. 修改MySQL认证方式
针对MySQL 8的加密协议兼容性问题,需执行以下操作:
- 进入MySQL容器:
docker exec -it 容器ID bash
- 登录数据库后执行:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码'; FLUSH PRIVILEGES;
4. 防火墙与安全组配置
需完成双重验证:
检查项 | 操作示例 |
---|---|
腾讯云安全组 | 添加入站规则放行TCP:3306(或自定义端口) |
宿主机防火墙 | 执行firewall-cmd --add-port=3306/tcp --permanent |
通过端口映射验证、加密协议调整和网络策略配置的三步排查法,可解决90%以上Navicat连接Docker版MySQL失败的问题。建议优先检查宿主机端口映射状态,再处理MySQL用户权限和加密协议兼容性。
本文由阿里云优惠网发布。发布者:编辑员。禁止采集与转载行为,违者必究。出处:https://aliyunyh.com/603305.html
其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。