0

我正在尝试从我的 VPS 连接到 AWS MySQL 服务器,但无论我尝试什么,我都会被拒绝访问,我的用户有权从任何主机连接。

如果我尝试通过 PHP 连接:

$db = new mysqli('mysite.cufncdsjslka.us-east-1.rds.amazonaws.com', 'my_user', 'my_pass', 'my_db');

给我:Warning: mysqli::mysqli(): (28000/1045): Access denied for user 'my_user'@'XXXX.myhost.com' (using password: YES) in /home/me/shopify/libraries/db.lib.php on line 4

如果我尝试通过 MySQL CLI 连接:

mysql -h mysite.cufncdsjslka.us-east-1.rds.amazonaws.com -umy_user -p

给我: ERROR 1045 (28000): Access denied for user 'my_user'@'xxxx.myhost.com' (using password: YES)

此命令在我的 PC 上完美运行,但在我的 VPS 上却不行。

我假设这是某种安全设置阻止 MySQL 使用外部服务器?

我的 VPS 使用标准 Debian 软件包中的 LAMP 组件运行 Debian 挤压,除了我手动更新到 5.4 的 PHP。

我将此作为一个新问题发布,因为我在 SO 上发现的大多数类似问题都是权限问题(我已授予我的 MySQL 用户从任何主机连接的权限)或 SELinux 问题(AFAIK 不适用于Debian)

4

1 回答 1

1

好的。

由于许多不同的原因,我已经多次看到这个问题。由于我看不到您的服务器或您的日志,所以我从信息中猜测可能存在绑定地址问题。

在 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
于 2013-04-10T17:25:34.470 回答