PHP跨服务器连接MySQL数据库遇1045权限拒绝错误求助
解决MySQL远程连接1045访问拒绝问题
针对你遇到的mysqli::real_connect(): (HY000/1045): Access denied for user 'test_user'@'xxxx.xxxxxxxxxxxxx.com'错误,按以下步骤排查:
匹配授权主机
错误信息显示请求来自域名xxxx.xxxxxxxxxxxxx.com,但你仅授权了IP地址,MySQL权限规则为严格匹配。直接对该域名授权:GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'xxxx.xxxxxxxxxxxxx.com' IDENTIFIED BY 'test_pw'; FLUSH PRIVILEGES;测试阶段可临时用
test_user@'%'授权(仅限测试,生产环境禁用),验证是否为主机匹配问题。验证账号密码正确性
确认PHP代码中的$username和$password与数据库账号完全一致,注意Linux系统下MySQL用户名区分大小写。可在数据库本地执行mysql -u test_user -p,输入密码测试登录是否正常。检查防火墙与网络连通性
确认数据库服务器的防火墙(含云服务商安全组)已开放3306端口给站点服务器的IP/域名。用以下命令测试连通性:telnet 192.xxx.xxx.xx 3306若无法连通,优先排查防火墙规则。
检查MySQL绑定地址配置
查看MySQL配置文件my.cnf(或my.ini)中的bind-address项,若设置为127.0.0.1则仅允许本地访问,需修改为0.0.0.0(允许所有IP)或站点服务器的IP,修改后重启MySQL服务。
内容的提问来源于stack exchange,提问作者Robin Rai
相关产品推荐
相关产品推荐

