无法通过 Google App Engine 与 ZF2 中的 Pdo_Mysql 连接到 Google 云 SQL

Cannot connect to Google Cloud SQL through Google App Engine with Pdo_Mysql in ZF2

几天来我一直在尝试解决这个问题,但没有任何结果。使用默认 php pdo 对象时,我可以连接到数据库:

$db = new \PDO('mysql:unix_socket=/cloudsql/project-id:database-instance;dbname=test',
          'root',  // username
          ''       // password
        );

但是当尝试连接 ZF2 适配器时,连接超时。

'db' => array(
        'driver' => 'Pdo_Mysql',
        'database' => 'test',
        'username' => 'root', 
        'unix_socket' => '/cloudsql/project-id:database-instance',
),

我很确定问题出在 unix_socket 上,因为我可以直接从我的本地主机连接到云 SQL 服务器而无需套接字:

'db' => array(
        'driver' => 'Pdo_Mysql',
        'host' => 'xxx.xxx.xxx.xxx',
        'database' => 'test',
        'username' => 'user',
        'password' => 'password',

),

我错过了什么?

unix_socket 不是 pdo 驱动程序 (https://github.com/zendframework/zf2/blob/master/library/Zend/Db/Adapter/Driver/Pdo/Connection.php#L164) 的可识别选项。试试这个

'db' => array(
        'dsn' => 'mysql:unix_socket=/cloudsql/project-id:database-instance;dbname=test',
        'username' => 'user',
        'password' => 'password',    
)