Yii CDbConnection无法打开数据库连接:找不到google cloud sql的驱动程序

时间:2014-07-03 13:27:32

标签: php mysql yii google-cloud-sql google-compute-engine

我遇到了Yii和在Google Cloud sql上运行的mysql数据库的问题。

快速浏览:

我们已经从现有的服务器移动了这一切,完全没有任何问题,现在已经设置了一个带有php的Google Compute Engine服务器,所有的relivant驱动程序mysql_pdo就是其中之一。我们还有一个Google Cloud SQL数据库,用于存储我们现有的所有数据库信息。

我尝试了什么

我写了一个简单的php脚本使用 PDO('mysql:<IPADDRESS>;dbname=<MYDBNAME>,'MYUSERNAME','MYPASSWORD');这个连接非常好,可以读取表并返回数据。

问题

一旦我在config / main.php中执行相同的操作,它似乎无法正常工作并收到错误: CDbConnection无法打开数据库连接:找不到驱动程序 < / p>

这是yii连接字符串

'db'=>array(
                    'connectionString' =>'mysql:host=my.server.ip.address;dbname=my_db_name',
                    'emulatePrepare' => true,
                    'username' => 'my_username',
                    'password' => 'my_passsword',
                    'charset' => 'utf8',
            ),

我还运行了yii需求脚本,它们都返回为mysql PDO函数传递。

enter image description here

非常感谢任何帮助。

谢谢,

2 个答案:

答案 0 :(得分:3)

啊哈回答我自己的问题:

服务器需要具有sqlite PDO扩展以及MySQL PDO扩展。现在一切都很完美!

所以值得检查你的phpinfo

您可以根据以下答案添加:https://superuser.com/a/320914

或通过您的php.ini取消注释以下内容:

extension=php_pdo_sqlite.dll

extension=php_sqlite.dll

希望这有助于其他人

答案 1 :(得分:0)

不确定是否可以解决此问题...我遇到了通过CentOS 7 GCE连接到Cloud SQL的“权限被拒绝”问题。

发现它与SELinux有关,并找到以下解决方案:Connect DATABASE Error TYPE: 2002: Permission denied

基本上是setsebool -P httpd_can_network_connect_db 1

这解决了我的问题,而没有禁用SELinux。

希望它可以帮助阅读此书的人。