подключиться к удаленной службе wpengine mysql с помощью php / pdo

#php #mysql #wordpress

#php #mysql #wordpress

Вопрос:

Следуя инструкциям здесь:

https://wpengine.com/support/setting-remote-database-access/

Я могу подключиться к mysql из своей командной строки с помощью:

mysql -uuser -ppassword -h instance.sftp.wpengine.com -База данных P13306 -D —default-auth=mysql_native_password

Но когда я пытаюсь использовать те же параметры через php / pdo:

$dbh = new PDO('mysql:host='.$host.';port='.$port.';dbname='.$db.';default-auth=mysql_native_password', $user, $pass);

Я получаю эту ошибку:

Фатальная ошибка PHP: неперехваченное исключение PDOException: PDO::__construct(): сервер MySQL исчез

Ответ №1:

Вам нужно добавить опции и указать ключ .pem.

Вы можете загрузить ключ pem из инструкций в вопросе:

https://wpengine.com/support/setting-remote-database-access / — сохраните wpengine_root_ca.pem в том же каталоге, что и ваш скрипт.

     $user = '';
    $pass = '';
    $db = '';
    $port = '13306';
    $host = 'instance.sftp.wpengine.com';  //put your account name instead of 'instance' here
    $options = ['default-auth'=>'mysql_native_password',
    PDO::MYSQL_ATTR_SSL_CA=>__DIR__.'/wpengine_root_ca.pem',
    PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false];
    
    $dbh = new PDO('mysql:host='.$host.';port='.$port.';dbname='.$db.';default-auth=mysql_native_password', $user, $pass, $options);
  

Вы должны внимательно прочитать инструкции, а также убедиться, что WP Engine внес ваш IP-адрес в белый список.