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

Ubuntu 20.04LTS LAMP服务器MySQL连接拒绝问题求助

解决MySQL连接拒绝(2002错误)的步骤

1. 修正用户权限的主机匹配

你创建的用户是'user1'@'localhost',但PHP代码里连接用的是host=domain.com,两者主机范围不匹配,导致权限验证失败。执行以下SQL调整用户权限:

-- 若仅允许从domain.com访问
CREATE USER 'user1'@'domain.com' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON domain.* TO 'user1'@'domain.com'; -- 建议仅授权目标数据库,而非所有库

-- 若需允许任意主机访问(注意安全风险)
CREATE USER 'user1'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON domain.* TO 'user1'@'%';

-- 刷新权限使配置生效
FLUSH PRIVILEGES;

2. 检查MySQL绑定地址配置

MySQL默认可能仅绑定127.0.0.1(仅允许本地访问),需修改配置开放外部连接:

  • 找到MySQL配置文件(通常为/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf)
  • 找到bind-address项,改为0.0.0.0(允许所有IP访问)或服务器的公网IP
  • 重启MySQL服务:systemctl restart mysql(Ubuntu/Debian)或service mysqld restart(CentOS)

3. 验证防火墙端口开放

确保服务器防火墙开放MySQL默认端口3306:

  • UFW防火墙:ufw allow 3306/tcp,执行ufw reload生效
  • iptables:iptables -A INPUT -p tcp --dport 3306 -j ACCEPT,保存规则后重启iptables

4. 测试连接有效性

先用MySQL命令行测试连接,排除PHP代码问题:

mysql -u user1 -p -h domain.com

若能成功登录,说明权限和网络配置正常,再检查PHP代码;若仍失败,回到前面步骤逐一排查。

内容的提问来源于stack exchange,提问作者jack.linton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:01:06