Ubuntu 22.04下PHP连接MySQL Community Server遭拒问题求助
解决MySQL Community Server与XAMPP共存时的连接拒绝问题
针对你遇到的连接拒绝错误,按以下步骤排查修复:
1. 修正MySQL服务端的端口配置(核心问题)
你修改的/etc/mysql/conf.d/mysql.cnf中[mysql]段的port=3307是客户端默认端口,而非服务端监听端口。服务端的配置需要修改[mysqld]段:
- 打开服务端配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf - 在
[mysqld]块中添加或修改:port = 3307 - 重启MySQL服务:
sudo systemctl restart mysql
2. 验证MySQL服务端是否监听3307端口
执行以下命令确认端口监听状态:
ss -tulpn | grep mysql
输出中应包含:3307,且进程为mysqld。如果还是:3306,说明服务端配置未生效,需检查配置文件路径是否正确(部分系统可能在/etc/my.cnf或/etc/mysql/my.cnf)。
3. 排查用户权限的主机匹配问题
你创建的用户test@solo-ROG-Strix-G731GV-G731GV依赖主机名解析,可能存在解析失败的情况:
- 先尝试用
localhost或127.0.0.1连接PHP代码,修改常量:const MYSQLI_HOSTNAME = "127.0.0.1"; - 或者为本地连接创建专用用户:
create user 'test'@'localhost' identified by '1234'; grant all privileges on test.* to 'test'@'localhost'; flush privileges;
4. 检查MySQL的绑定地址限制
确保MySQL服务允许本地连接:
- 在
mysqld.cnf的[mysqld]段,确认bind_address设置为127.0.0.1(允许本地连接)或你的主机IP,避免设置为仅允许外部IP导致本地无法连接。
5. 用命令行验证连接可用性
先排除PHP层面的问题,用MySQL客户端直接连接测试:
mysql -u test -p -P 3307 -h 127.0.0.1
如果能成功连接,说明MySQL配置和用户权限正常,问题可能在PHP的mysqli配置;如果连接失败,回到前面的步骤检查服务端端口和权限。
6. 确认XAMPP的MySQL服务未运行
确保XAMPP的MySQL没有占用端口:
sudo /opt/lampp/xampp status
如果显示mysql is running,执行sudo /opt/lampp/xampp stopmysql关闭它。
内容的提问来源于stack exchange,提问作者soLo
相关产品推荐
相关产品推荐

