Google App Engine Cloud SQL 连接问题

Google App Engine Cloud SQL connection issue

尝试连接到 Google 云 SQL 时出现以下错误:

Connection error

Unable to find the socket transport "unix" - did you forget to enable it when you configured PHP?

我已经尝试解决这个问题好几个小时了,但仍然一无所获。

我的配置如下(ZF2配置local.php):

return array(
    'db' => array(
        'driver' => 'Mysqli',
        'host' => '',
        'database' => 'ar_captab',
        'username' => 'root',
        'password' => '',
        'driver_options'  => [
            'unix_socket' => ':/cloudsql/some-app-v1-test:some-db'
        ]
    ),
);

我还将 Google App Engine 应用程序的应用程序 ID 添加到云 SQL 中的访问控制列表(授权的 App Engine 应用程序)。

当我尝试 运行 时:

$config = $this->getServiceLocator()->get('config');

$adapter = new \Zend\Db\Adapter\Adapter($config['db']);
$sql = new \Zend\Db\Sql\Sql($adapter);

$select = $sql->select();
$select->from('example');
$select->where('1');

$statement = $sql->prepareStatementForSqlObject($select);
$results = $statement->execute();

我收到 unix 套接字错误。我缺少什么?

终于想通了。我是因为冒号。 Mysqli 连接不需要它,只有 PDO 连接类型才需要它。

所以正确的配置是:

return array(
    'db' => array(
        'driver' => 'Mysqli',
        'host' => '',
        'database' => 'some-database',
        'username' => 'root',
        'password' => '',
        'driver_options'  => [
            'unix_socket' => '/cloudsql/some-app-v1-test:some-db'
        ]
    ),
);