【问题标题】:Can't connect to remote MySQL server (uses default server instead)无法连接到远程 MySQL 服务器(改用默认服务器)
【发布时间】: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 数据库中的用户表。

标签: php mysql mysqli debian


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 2017-06-26
    • 2016-12-25
    • 1970-01-01
    • 2014-03-04
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多