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

PHP连接Amazon EC2时MySQL连接失败,如何正确配置安全组规则?

解决MySQL连接错误:Host 'xxx' is not allowed to connect

看到你碰到的这个报错:

Warning: mysqli_connect(): (HY000/1130): Host '123.202.164.45' is not allowed to connect to this MySQL server in /Applications/XAMPP/xamppfiles/htdocs/data.php on line 16 Failed to connect to MySQL: Host '123.202.164.45' is not allowed to connect to this MySQL server

别着急,安全组放行只是网络层面的准入,MySQL自身的用户权限绑定才是导致这个问题的核心,按以下步骤排查配置:

1. 调整MySQL的绑定地址

默认情况下,MySQL可能只监听本地127.0.0.1,需要修改配置让它接受外部IP的连接:

  • 找到MySQL配置文件:Linux一般是/etc/my.cnf或/etc/mysql/my.cnf,XAMPP环境下是my.ini
  • 找到bind-address配置项,将其值改为0.0.0.0(允许所有IP访问),或者直接注释掉这一行
  • 重启MySQL服务:
    • Linux:执行sudo systemctl restart mysql
    • XAMPP:在控制面板里重启MySQL模块

2. 给MySQL用户授权外部IP访问权限

MySQL的用户是和来源IP绑定的,你需要明确授权你的用户可以从123.202.164.45访问:

  • 本地登录MySQL命令行:mysql -u root -p(输入root密码登录)
  • 执行授权命令(替换成你的实际用户名和密码):
    GRANT ALL PRIVILEGES ON *.* TO '你的MySQL用户名'@'123.202.164.45' IDENTIFIED BY '你的密码';
    
    如果想让这个用户从任意IP都能访问,把123.202.164.45换成%即可:
    GRANT ALL PRIVILEGES ON *.* TO '你的MySQL用户名'@'%' IDENTIFIED BY '你的密码';
    
  • 刷新权限让配置生效:
    FLUSH PRIVILEGES;
    

3. 再次确认安全组规则

虽然你说已经开放了所有流量,但还是要核对关键细节:

  • 入站规则中添加允许3306端口(MySQL默认端口),源地址设置为123.202.164.45或者0.0.0.0/0(所有IP)
  • 确保出站规则没有限制到MySQL服务器的3306端口

完成以上三步后,再尝试连接应该就能解决问题了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:18:02