【问题标题】:connect to remote wpengine mysql service with php/pdo使用 php/pdo 连接到远程 wpengine mysql 服务
【发布时间】:2020-08-27 05:56:49
【问题描述】:

按照此处的说明进行操作:

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 服务器已消失

【问题讨论】:

    标签: php mysql wordpress


    【解决方案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 地址列入白名单。

    【讨论】:

      猜你喜欢
      • 2010-12-28
      • 1970-01-01
      • 2013-03-06
      • 2021-02-25
      • 2012-04-02
      • 2014-10-04
      相关资源
      最近更新 更多