Php Google应用程序引擎:如何使用Zend DB连接到云SQL
我有一个Zend Framework 1.12应用程序,它使用Zend DB Adapter类连接MySql。我需要尽快部署它,并正在调查谷歌应用程序引擎 我目前的问题是无法将应用程序连接到Google Cloud SQL。这个Google页面给出了一个使用PHP和PDO的示例。它使用DSN作为参数 Zend DB Adapter类不将DSN作为参数,而是从它接收的其他参数构造它。我曾尝试设计Zend DB适配器参数以提供正确的DSN,但仍然不走运。以下是我的尝试:Php Google应用程序引擎:如何使用Zend DB连接到云SQL,php,mysql,sql,google-app-engine,zend-framework,Php,Mysql,Sql,Google App Engine,Zend Framework,我有一个Zend Framework 1.12应用程序,它使用Zend DB Adapter类连接MySql。我需要尽快部署它,并正在调查谷歌应用程序引擎 我目前的问题是无法将应用程序连接到Google Cloud SQL。这个Google页面给出了一个使用PHP和PDO的示例。它使用DSN作为参数 Zend DB Adapter类不将DSN作为参数,而是从它接收的其他参数构造它。我曾尝试设计Zend DB适配器参数以提供正确的DSN,但仍然不走运。以下是我的尝试: $config = new
$config = new Zend_Config(
array(
'database' => array(
'adapter' => 'Pdo_Mysql',
'params' => array(
'host' => 'test-instance',
'dbname' => 'my_db_name',
'username' => 'root',
'password' => 'rootpassword',
'charset' => 'utf8',
'driver_options' => [
'unix_socket' => '/cloudsql/test-project'
]
)
)
)
);
try {
$this->_db = Zend_Db::factory($config->database);
$this->_db->getConnection();
} catch (Exception $e){
Zend_Registry::get('logger')->debug('Cannot create the connection...');
Zend_Registry::get('logger')->debug(print_r($e, true));
}
消息中的异常是
mysql驱动程序当前未安装
有什么想法吗
在这个阶段,我只是在桌面上的GAE SDK上尝试。我还没有将应用程序上传到云端。但我怀疑这是个问题。(我的工作站IP被授权使用云Sql实例)。我本人没有在AppEngine上使用Zend Framework,但根据我的经验(并非我在任何地方都发现它),如果您使用“root”用户从AppEngine应用程序连接到云Sql,则不应提供密码,否则无法连接 同样如文档(此处:)所示,unix_套接字选项的格式应为/cloudsql/project name:instance name 因此,我将尝试按如下方式重写您的$config:
$config = new Zend_Config(
array(
'database' => array(
'adapter' => 'Pdo_Mysql',
'params' => array(
'host' => '',
'dbname' => 'my_db_name',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'driver_options' => [
'unix_socket' => '/cloudsql/test-project:test-instance'
]
)
)
)
);
我本人没有在AppEngine中使用Zend框架,但根据我的经验(并非我在任何地方都发现它),如果您使用“root”用户从AppEngine应用程序连接到云SQL,则不应提供密码,否则无法连接 同样如文档(此处:)所示,unix_套接字选项的格式应为/cloudsql/project name:instance name 因此,我将尝试按如下方式重写您的$config:
$config = new Zend_Config(
array(
'database' => array(
'adapter' => 'Pdo_Mysql',
'params' => array(
'host' => '',
'dbname' => 'my_db_name',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'driver_options' => [
'unix_socket' => '/cloudsql/test-project:test-instance'
]
)
)
)
);
绝对正确如果您已经设置了
root
用户密码,请不要忘记删除它…..绝对正确如果您已经设置了root
用户密码,请不要忘记删除它。。。。。