我有一个使用PDO连接MySQL实例的GAE PHP应用程序。 MySQL实例托管在不同的GCP项目中。 我有这个错误:
SQLSTATE[HY000] [2002] Unable to find the socket transport \"unix\" -
did you forget to enable it when you configured PHP?
这是PDO代码:
# GAE
$this->database = new PDO('mysql:unix_socket=<SQL_INSTANCE_NAME>;dbname=<DB_NAME>', <USER>, <PASSWORD>);
$this->database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->database->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
是否可以将GAE PHP应用程序连接到其他项目的MySQL实例?
答案 0 :(得分:2)
固定!!! 我有这个代码
$this->database = new PDO('mysql:unix_socket=<SQL_INSTANCE_NAME>;dbname=<DB_NAME>', <USER>, <PASSWORD>);
并且是::/cloudsql/<PROJECT>:<REGION>:<DB_NAME>
解决方案删除冒号 !!!
所以这是正确的dsn:
$this->database = new PDO('mysql:unix_socket=/cloudsql/<PROJECT>:<REGION>:<DB_NAME>;dbname=<DB_NAME>', <USER>, <PASSWORD>);