You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1下XAMPP连接MySQL遇ERROR 2002(HY000)求助

解决Mac M1 + XAMPP 8.2.0-0 MySQL IP连接失败问题

问题分析

使用localhost连接MySQL正常,但通过IP(127.0.0.1、局域网/外部IP)连接时报错ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (60),核心原因是MySQL默认仅启用Unix Socket连接,未监听TCP/IP端口,或绑定地址限制了IP访问。

解决方案

1. 修改MySQL配置文件

打开XAMPP的MySQL配置文件,路径为:
/Applications/XAMPP/xamppfiles/etc/my.cnf

找到以下配置项并调整:

  • 找到bind-address行,将其值改为0.0.0.0(允许所有IP访问)或127.0.0.1(仅允许本地IP访问)。若该行被注释(开头带#),取消注释后修改。
  • 确保skip-networking行被注释(开头添加#),该配置会直接禁用TCP/IP连接。

修改完成后保存文件。

2. 重启MySQL服务

通过XAMPP控制面板重启MySQL,或执行命令行:

sudo /Applications/XAMPP/xamppfiles/bin/mysql.server restart

3. 验证TCP监听状态

执行以下命令检查MySQL是否在监听3306端口:

lsof -i :3306

或

netstat -an | grep 3306

输出中需包含0.0.0.0:3306或127.0.0.1:3306的条目,说明TCP监听已正常启用。

4. 检查用户访问权限

确保连接用户(如root)拥有对应IP的访问权限:

  1. 先用localhost连接MySQL:
cd /Applications/XAMPP/xamppfiles/bin
./mysql -h localhost -u root
  1. 执行权限授权命令(按需选择):
  • 允许从任意IP访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  • 仅允许从本地127.0.0.1访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;

补充说明

localhost连接正常是因为Mac系统默认优先使用Unix Socket(路径通常为/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock),无需依赖TCP/IP端口;而IP连接强制走TCP/IP协议,必须依赖MySQL的TCP监听配置。

内容的提问来源于stack exchange,提问作者asyadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:15:41