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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:35:41