PDO 一直连接到错误的 IP

0x4*_*D18 5 php pdo wamp wampserver

当我尝试使用以下代码从 WAMP 服务器安装连接到我的外部服务器(允许外部连接)时:

const SERVER = 'xxx.xxx.xxx.xx'; // Redacted, the target servers IP
const PORT = 3306; 
const DATABASE = 'xxx'; // Redacted
const USERNAME = 'xxx'; // Redacted
const PASSWORD = 'xxx'; // Redacted
const TIMEOUT = 5;

try
{
    $pdo = new PDO('mysql:dbname=' . DATABASE . ';host=' . SERVER . ';port=' . PORT, USERNAME, PASSWORD, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_TIMEOUT => TIMEOUT));
}
catch (PDOException $e)
{
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息: SQLSTATE[HY000] [1045] Access denied for user 'main'@'xxx.xxx.xxx.xx' (using password: YES) 其中 IP 地址是我的外部(不是 LAN)IP 地址,而不是我指定的地址。

我以前试过这个代码,它没有任何问题,但现在突然由于我不知道的原因,它尝试连接到我自己的 IP 并失败。我究竟做错了什么?

Sam*_*Sam 2

我的 root 和其他用户遇到了完全相同的问题。我试图使用 PDO() 从另一个远程服务器 B 连接到远程服务器 A。虽然,我可以使用 CLI 从远程服务器 B 登录 mysql 远程服务器 A,但不能通过 PDO 登录。

两个远程服务器都在运行:

  • 乌班图20.04
  • 使用 readline 5.2 分发 10.3.25-MariaDB

问题出在我的 root 和用户密码中的特殊字符。有#, (, !, )。所以我更改了密码并且它开始工作。

我真的查遍了整个互联网两天才解决这个问题。不知道这可能是密码。