PHP:无法通过 PDO 访问不同服务器上的 MySQL 服务器

PHP:无法通过 PDO 访问不同服务器上的 MySQL 服务器

我正在尝试连接到提供的卸载 SQL 服务器这里。它说我应该使用内部 IP 进行连接172.16.0.51

我在我的 VPS 上安装了 nginx 和 PHP(php5-fpm、php5-mysql)。phpinfo() 也可以工作。但是,当我尝试连接到服务器时,出现以下错误。我尝试使用服务器的外部 IP 连接到服务器,但仍然出现相同的错误。

SQLSTATE[28000] [1045] Access denied for user 'myuser'@'AAA.BBB.CCC.DDD' (using password: YES)

AAA.BBB.CCC.DDD是我的 VPS 的 IP,而不是服务器的 IP。这很奇怪,因为我在连接服务器时没有指定这个 IP。

这是我使用的 PHP 代码。

try {
    $dsn = 'mysql:host=172.16.0.51;dbname=myuser_mydatabase;charset=utf8';

    $db = new PDO($dsn,'myuser','mypassword');

    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch (PDOException $e) {
    echo 'PDO error: ' . $e->getMessage();
    exit;
}

我在这里做错了什么?

编辑:仅供参考,用户myuser是我注册卸载 SQL 时获得的默认用户。我检查了它是否已向所有数据库授予所有授权。我还通过 cPanel 创建了一个新的数据库和用户,并授予了适当的访问权限。我仍然无法让它工作。我得到了同样的错误。

编辑2:我将我的 vps 的 IP 地址添加到 cPanel 的允许主机列表中,但这也不能解决问题。

EDIT3:请看我的答案。

答案1

嗯,这很尴尬。我在将我的 VPS 的 IP 添加到允许主机列表后没有等待足够长的时间。我会把这个留在这里,以防有人发现这些信息有用。

相关内容