我有一个在Google Cloud上运行的MySQL数据库。它具有SSL强制性,因此我使用证书和密钥来连接到它:
mysql --ssl-ca=/path/to/server-ca.pem --ssl-cert=/path/to/client-cert.pem --ssl-key=/path/to/client-key.pem --host=ip-address --user=username --password
PDO::MYSQL_ATTR_SSL_CA
,PDO::MYSQL_ATTR_SSL_CERT
和PDO::MYSQL_ATTR_SSL_KEY
选项指示所需的文件。两个连接都可以正常工作,只是PHP中的PDO连接非常慢。 CLI方法需要毫秒来连接和执行查询,而PDO方法对于相同数量的连接则要花费5到10倍的时间。我在同一台计算机上尝试了这两种方法,因此这似乎不是硬件/网络问题。 PDO会在这里引起问题吗?
我正在使用Laravel,以防可能相关。
更新:我尝试过的事情
所以我还没有尝试过的唯一方法就是关闭SSL / TLS。不幸的是,出于安全原因,我无法在此实例上执行此操作。另外,基于使用CLI的SSL / TLS连接非常快的事实,我得出结论,它必须与特定于PHP或PDO的东西有关。
我将自己进行一些调试,并在获得相关结果后将其添加。
我有一个在Google Cloud上运行的MySQL数据库。它具有SSL强制性,因此我使用证书和密钥来连接它:在命令行上,我使用:mysql --ssl-ca = / path / to / server-ca.pem --ssl-cert =。 。
我最终选择了Google Cloud Compute VM来托管我的PHP,然后通过私有IP连接。看来这可行。