navicat连接云服务器上docker部署的mysql报错Can‘t connect to MySQL server on localhost (10061)

今天在云服务器上使用docker部署mysql5.7.26时,遇到了一个诡异的问题,在云服务器的mysql容器内可以连接上mysql,然而在自己电脑上连接mysql时报错:Can‘t connect to MySQL server on localhost (10061)

首先我的docker-compose.yml配置如下:

ersion: '3'

services:
  mysql:
    container_name: mysql
    restart: always
    network_mode: bridge
    environment:
      MYSQL_ROOT_PASSWORD
### 解决 Navicat 连接 MySQL 报错 2003 当遇到错误 `2003 - Can't connect to MySQL server on 'localhost' (10061 "Unknown error")` 时,这通常意味着客户端无法建立与 MySQL 数据库服务器连接。以下是几种常见的解决方案: #### 确认 MySQL 服务状态 确保 MySQL 服务已启动并正在运行。可以通过操作系统的“服务管理器”来查看 MySQL 是否处于活动状态[^2]。 #### 验证端口配置 默认情况下,MySQL 使用的是 3306 端口。确认该端口没有被其他程序占用,并且防火墙设置允许此端口上的通信。如果是在 Docker 容器内运行 MySQL,则需特别注意容器映射外部端口的情况,有时会因为端口冲突而引发此类问题[^4]。 ```bash netstat -an | findstr :3306 ``` 上述命令可以帮助检查是否有进程监听在 3306 上;如果没有找到任何匹配项,则表明可能存在端口未开启或其他应用占用了相同端口的问题。 #### 修改主机地址 对于本地连接而言,“localhost” 和 “127.0.0.1” 是等价的,但如果其中一个不起作用,尝试切换另一个作为测试手段。某些环境下两者的表现可能会有所不同[^3]。 #### 检查权限和认证插件兼容性 部分版本更新后的 MySQL 可能引入新的身份验证机制,默认的身份验证插件可能导致旧版工具(如较早版本的 Navicat)无法完成正常的登录流程。此时可考虑调整用户的认证方法为更通用的形式,比如 `mysql_native_password`[^5]。 ```sql ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES; ``` 以上 SQL 命令用于更改指定账户使用的密码加密算法至更为广泛支持的方式。 #### 排除网络因素干扰 即使目标是本机部署的服务实例,在复杂的企业级环境中仍有可能受到虚拟化平台、安全策略等因素的影响。因此建议暂时关闭不必要的网络安全防护措施来进行排查工作,待定位具体成因后再做相应处理。 通过执行这些步骤中的某一项或多项组合起来往往能够有效缓解乃至彻底解决问题。当然,具体情况还需结合实际环境进一步分析判断。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值