按照此处的说明操作:
https://wpengine.com/support/setting-remote-database-access/
我可以通过以下命令行连接到mysql:
mysql-uuser-password-h instance.sftp.wpengine.com-P13306-D数据库--默认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服务器已离开
您需要添加选项并指定.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引擎已将您的ip地址列入白名单。