#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-адрес в белый список.