Mac重启后XAMPP中MySQL连接被拒绝(HY000/2002)问题求助
问题背景
本地项目在XAMPP环境下原本运行正常,安装OpenSSL后也能正常工作,但Mac重启后出现以下问题:
启动XAMPP服务时触发PHP警告:
A PHP Error was encountered
Severity: Warning
Message: mysqli::real_connect(): (HY000/2002): Connection refused
Filename: mysqli/mysqli_driver.php
Line Number: 203
Backtrace:
File: /Applications/XAMPP/xamppfiles/htdocs/fed8/application/controllers/Login.php
Line: 8
Function: __construct
File: /Applications/XAMPP/xamppfiles/htdocs/fed8/index.php
Line: 315
Function: require_once访问
localhost/phpmyadmin时出现连接错误:MySQL ha dicho: Documentación
No se estableció la conexión: los parámetros están incorrectos.
Índice de servidor inválido:
mysqli::real_connect(): (HY000/2002): Connection refused
La conexión para controluser, como está definida en su configuración, fracasó.
mysqli::real_connect(): (HY000/2002): Connection refused
phpMyAdmin intentó conectarse con el servidor MySQL, y el servidor rechazó esta conexión. Deberá revisar el host, nombre de usuario y contraseña en config.inc.php y asegurarse que corresponden con la información provista por el administrador del servidor MySQL.
已尝试修改config.inc.php的host、认证方式、密码,修改my.cnf,重装/降级XAMPP等方案,均未解决问题。
排查与解决步骤
1. 确认MySQL服务是否实际启动
- 打开XAMPP控制面板,检查MySQL模块状态是否为Running,若显示启动但仍报错,需验证进程是否存在:
终端执行:
若输出中无XAMPP相关的ps aux | grep mysqlmysqld进程,说明服务未真正启动。 - 尝试手动启动MySQL并查看报错:
先在XAMPP面板停止MySQL,再执行:
终端会输出具体启动失败原因(如端口占用、权限问题)。sudo /Applications/XAMPP/xamppfiles/bin/mysqld_safe
2. 检查端口冲突
MySQL默认使用3306端口,Mac自带MySQL或其他软件可能占用该端口:
- 终端查询端口占用情况:
lsof -i :3306 - 若存在非XAMPP的进程,杀掉该进程:
sudo kill -9 [进程PID] - 若不想终止其他进程,可修改XAMPP的MySQL端口:
- 打开XAMPP面板的MySQL配置文件(
my.cnf),将port=3306改为3307(或其他未占用端口); - 修改phpMyAdmin的
config.inc.php,添加/修改:$cfg['Servers'][$i]['port'] = '3307'; - 同步修改项目数据库配置文件中的端口。
- 打开XAMPP面板的MySQL配置文件(
3. 修复MySQL数据目录权限
重启后XAMPP的MySQL数据目录权限可能异常:
终端执行以下命令修复权限:
sudo chown -R mysql:mysql /Applications/XAMPP/xamppfiles/var/mysql sudo chmod -R 755 /Applications/XAMPP/xamppfiles/var/mysql
执行后重启XAMPP的MySQL服务。
4. 重置MySQL root密码(权限验证失败场景)
若因密码失效或权限配置错误导致连接拒绝:
- 在XAMPP面板停止MySQL服务;
- 终端执行跳过权限验证启动MySQL:
/Applications/XAMPP/xamppfiles/bin/mysqld_safe --skip-grant-tables & - 打开新终端,登录MySQL:
/Applications/XAMPP/xamppfiles/bin/mysql -u root - 执行SQL重置root密码:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; - 重启MySQL服务,同步修改phpMyAdmin的
config.inc.php和项目数据库配置中的密码。
5. 检查OpenSSL对环境变量的影响
安装OpenSSL可能修改系统PATH,导致XAMPP调用系统库而非自带库:
- 终端查看当前PATH:
echo $PATH - 若
/Applications/XAMPP/xamppfiles/bin未排在系统目录(如/usr/bin)之前,修改shell配置文件:- 若使用zsh,编辑
~/.zshrc;若使用bash,编辑~/.bash_profile; - 添加以下内容:
export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH" - 重启终端后,重新启动XAMPP服务。
- 若使用zsh,编辑
内容的提问来源于stack exchange,提问作者AlexTrejo

