Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法通过ZF2中带有Pdo_Mysql的Google App Engine连接到Google Cloud SQL_Php_Mysql_Google App Engine_Zend Framework2_Google Cloud Sql - Fatal编程技术网

Php 无法通过ZF2中带有Pdo_Mysql的Google App Engine连接到Google Cloud SQL

Php 无法通过ZF2中带有Pdo_Mysql的Google App Engine连接到Google Cloud SQL,php,mysql,google-app-engine,zend-framework2,google-cloud-sql,Php,Mysql,Google App Engine,Zend Framework2,Google Cloud Sql,我已经尝试解决这个问题好几天了,没有任何结果。使用默认php pdo对象时,我可以连接到数据库: $db = new \PDO('mysql:unix_socket=/cloudsql/project-id:database-instance;dbname=test', 'root', // username '' // password ); 但是当尝试连接ZF2适配器时,连接只是超时 'db' => array(

我已经尝试解决这个问题好几天了,没有任何结果。使用默认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_套接字上,因为我可以从本地主机直接连接到云SQL server,而无需套接字:

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

),

我缺少什么?

unix\u socket
不是pdo驱动程序的可识别选项()。试试这个

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

我认为这个
'/cloudsql/project id:database instance'
部分应该出现在host字段中,尽管我使用的是另一个数据库驱动程序。我对此表示怀疑,我也尝试过,但出现了错误:警告:PDO:\uu construct():php_network_getaddresses:gethostbyname失败是否尝试从本地开发环境连接应用程序引擎实例?否,仅在部署到应用程序引擎后。我对本地和生产有单独的db配置非常感谢@Mars,这确实是问题所在,你救了我。我错误地理解了unix_套接字是一个选项,但它适用于不同的驱动程序。