MySQL 连接错误Can‘t connect to MySQL server on (61)

本文介绍了解决MacNavicat连接MySQL时出现的“Can’t connect to MySQL server”错误的方法,包括检查用户权限、确认MySQL监听3306端口及配置防火墙。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链接数据库时忽然遇到一个问题。Mac Navicat链接时报错Can’t connect to MySQL server on ‘xx.xx.xx.xx’ (61)。

PS. win版Navicat 报错Can’t connect to MySQL server on ‘xx.xx.xx.xx’ (10038)

其中xx.xx.xx.xx是ip地址。

1、查看该用户是否有远程登录的权限

 

mysql> SELECT * FROM mysql.user;
+-----------+-----------+
| User      |  Host     |
+-----------+-----------+
| M         |  %        |
| mysql.sys | localhost |
| root      | localhost |
| tommy     | %        |
+-----------+-----------+
5 rows in set (0.00 sec)

Tips: %表示非指定IP,所有IP都可以连接,如果想指定IP连接数据库Host部分填写公网/内网/本地IP即可
  • 很显然,M是允许从其它服务器登陆的。

2、查看 MySQL Server 是不是监听了 3306 端口

执行命令 netstat -tulpen

netstat -tulpen

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 16801 1507/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 17222 1970/master
tcp6 0 0 :::3306 :::* LISTEN 27 46396 22054/mysqld
tcp6 0 0 :::22 :::* LISTEN 0 16803 1507/sshd
tcp6 0 0 ::1:25 :::* LISTEN 0 17223 1970/master
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 49600 22999/dhclient
udp 0 0 0.0.0.0:43504 0.0.0.0:* 0 48850 22999/dhclient
udp6 0 0 :::47875 :::* 0 48851 22999/dhclient
  • 我在这里也没有问题。

这里如果没有监听3306端口或者只监听了localhost(0.0.0.0表示监听所有),则在my.cnf添加下面这一行

bind-address = 0.0.0.0
  •  

3、如果服务器是 CentOS7,将 MySQL 服务加入防火墙

执行命令

sudo firewall-cmd --zone=public --permanent --add-service=mysql
  • 返回success。然后继续执行
sudo systemctl restart firewalld
  • 重启防火墙之后就能正常访问了。
### 解决 MySQL 连接错误 "Can't connect to MySQL server on '127.0.0.1' (10061)" 当遇到此连接错误时,通常意味着客户端无法建立与本地MySQL服务器的TCP/IP连接。这可能是由多种因素引起的,包括但不限于MySQL服务未启动、网络配置不当或防火墙设置阻碍了通信。 #### 验证并启动 MySQL 服务 确保MySQL服务正在运行是解决问题的第一步。如果服务未能自动启动,则需手动执行安装和服务开启操作: ```bash mysqld.exe --install net start mysql ``` 上述命令分别用于注册MySQL作为一个Windows服务以及启动该服务[^3]。 #### 修改绑定地址 有时,默认情况下MySQL仅监听localhost上的请求(`127.0.0.1`),这意味着只有来自同一台机器内部的应用程序才能访问它。为了使外部应用能够成功连接MySQL实例,应当调整`my.cnf`或`my.ini`(取决于操作系统)内的`bind-address`参数为`0.0.0.0`或其他指定IP地址: ```ini [mysqld] ... bind-address=0.0.0.0 ... ``` 完成编辑后记得保存更改并向MySQL重新加载配置文件以生效新设定[^2]。 #### 调整防火墙规则 另一个常见原因是系统级的安全策略阻止了必要的端口通讯。对于大多数默认安装而言,MySQL使用的是3306端口;因此建议临时禁用防火墙来验证其是否影响到了正常的数据库交互过程。当然,在生产环境中更推荐的做法是创建特定于应用程序的数据传输安全通道而不是完全开放防护机制。 #### 初始化数据目录 针对某些版本特别是8.0及以上的新部署环境来说,初次安装完成后可能缺少必需的基础结构——即"data"子文件夹及其内容物。此时应按照官方文档指导完成初始化流程,从而构建起完整的存储引擎框架支持后续业务逻辑运作需求[^4]: ```bash mysqld --initialize-insecure --user=mysql ``` 请注意,这条指令会在没有任何初始root账户密码的情况下准备一个新的实例,适用于开发测试阶段快速搭建场景下采用。 通过遵循这些步骤应该能有效缓解乃至彻底消除因"(10061)"引发的一系列连通性障碍现象。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值