Назад | Перейти на главную страницу

PHP: невозможно получить доступ к серверу MySQL на другом сервере через PDO

Я пытаюсь подключиться к предложенному выгруженному серверу SQL Вот. Он говорит, что я должен подключиться, используя внутренний IP 172.16.0.51.

Я установил nginx и PHP (php5-fpm, php5-mysql) на свой VPS. phpinfo () тоже работает. Однако когда я пытаюсь подключиться к серверу, я получаю следующую ошибку. Я попытался подключиться к серверу, используя его внешний IP-адрес, но все равно получаю ту же ошибку.

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

AAA.BBB.CCC.DDD это IP моего VPS, а не сервера. Это странно, потому что я не указывал этот 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;
}

Что я здесь делаю не так?

РЕДАКТИРОВАТЬ: FYI, пользователь myuser- это пользователь по умолчанию, которого мне дали, когда я подписался на выгруженный SQL. Я проверил, все ли гранты выданы всем базам данных. Я также создал новую базу данных и пользователя через cPanel и предоставил соответствующий доступ. Я все еще не могу заставить это работать. Я получаю ту же ошибку.

EDIT2: я добавил IP-адрес своего vps в список разрешенных хостов из cPanel, но это тоже не решило проблему.

EDIT3: пожалуйста, посмотрите мой ответ.

Ну, это неудобно. Я просто не ждал достаточно долго после добавления IP моего VPN в список разрешенных хостов. Я оставлю это здесь на всякий случай, если кому-нибудь эта информация пригодится.