我正在尝试从我的 VPS 连接到 AWS MySQL 服务器,但无论我尝试什么,我都会被拒绝访问,我的用户有权从任何主机进行连接。
如果我尝试通过 PHP 连接:
$db = new mysqli('mysite.cufncdsjslka.us-east-1.rds.amazonaws.com', 'my_user', 'my_pass', 'my_db');
给我:警告:mysqli::mysqli(): (28000/1045):/home/me 中的用户“my_user”@“XXXX.myhost.com”(使用密码:YES)访问被拒绝第 4 行/shopify/libraries/db.lib.php
如果我尝试通过 MySQL CLI 连接:
mysql -h mysite.cufncdsjslka.us-east-1.rds.amazonaws.com -umy_user -p
给我:
错误 1045 (28000):用户“my_user”@“xxxx.myhost.com”访问被拒绝(使用密码:YES)
此命令在我的 PC 上完美运行,但在我的 VPS 上运行不佳。
我假设这是某种安全设置阻止 MySQL 使用外部服务器?
我的 VPS 正在运行 Debian squeeze,其中的 LAMP 组件全部来自标准 Debian 软件包,除了我手动更新到 5.4 的 PHP 之外。
我将其作为一个新问题发布,因为我在 SO 上发现的大多数类似问题都是权限问题(我已授予我的 MySQL 用户从任何主机连接的权限)或 SELinux 问题(AFAIK 没有) t 适用于 Debian)
最佳答案
好的。
由于多种不同的原因,我已经多次看到这个问题。由于我看不到您的服务器或日志,因此我从信息中猜测可能存在绑定(bind)地址问题。
在my.cnf中检查
bind-address=YOUR-SERVER-IP
将其更改为您的mysql服务器的IP地址,例如81.92.33.45
此后重新启动 mysql。如果您仍然无法连接,请告诉我日志中的错误信息,我会再次查看。
其次确保 iptables 不会引起问题。
iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
关于php - 无法连接到远程 MySQL 服务器(使用默认服务器代替),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15916590/