【发布时间】:2013-04-10 03:49:58
【问题描述】:
我正在尝试从我的 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 正在运行带有 LAMP 组件的 Debian 挤压,所有这些组件都来自标准 Debian 软件包,但我手动更新到 5.4 的 PHP 除外。
我将此作为一个新问题发布,因为我在 SO 上发现的大多数类似问题都是权限问题(我已授予我的 MySQL 用户从任何主机连接的权限)或 SELinux 问题(AFAIK 没有t 适用于 Debian)
【问题讨论】:
-
您需要将您的 IP 或域列入白名单,远程 mysql 连接才能正常工作。这通常在您的 cpanel 中的 databases->remote mysql 下找到
-
向我们展示您如何允许它从任何主机连接。另外,请务必仔细检查您的密码。
-
@JohnVanDeWeghe 我可以毫无问题地从我自己的 PC(通过我的本地 LAMP、我的 IDE 或 MySQL Workbench)进行连接。
-
@JohnVanDeWeghe 我通过 MySQL Workbench 运行:
GRANT ALL PRIVILEGES ON my_db.* TO 'my_user'@'%' WITH GRANT OPTION;(连接到 MySQL 服务器没有问题)这让我相信这是我的 VPS 连接到 MySQL 服务器的问题,而不是MySQL 服务器上的特权。 -
这不是让一个没有密码的新用户吗?尽你所能连接并查看你的 mysql 数据库中的用户表。