![](/img/trans.png)
[英]yii CDbException: CDbConnection failed to open the DB connection: could not find driver
[英]Yii CDbConnection failed to open the DB connection: could not find driver with google cloud sql
我遇到了Yii和在Google Cloud sql上运行的mysql数据库的问题。
快速概述:
我们已经从现有的服务器移动了这一点,它完全没有任何问题,现在已经设置了一个带有php的Google Compute Engine服务器,所有的relivant驱动程序mysql_pdo就是其中之一。 我们还有一个Google Cloud SQL数据库,用于存储我们现有的所有数据库信息。
我试过了什么
我编写了一个使用PDO('mysql:<IPADDRESS>;dbname=<MYDBNAME>,'MYUSERNAME','MYPASSWORD');
的简单php脚本PDO('mysql:<IPADDRESS>;dbname=<MYDBNAME>,'MYUSERNAME','MYPASSWORD');
这连接绝对很好,可以读取表和返回数据。
问题
一旦我在config / main.php中执行相同的操作,它似乎无法正常工作并获得错误: CDbConnection无法打开数据库连接:找不到驱动程序
这是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函数传递的内容。
任何帮助将不胜感激。
谢谢,
啊哈回答我自己的问题:
服务器需要具有sqlite PDO扩展以及MySQL PDO扩展。 现在一切都很完美!
所以值得为此检查你的phpinfo
您可以根据以下答案添加它: https : //superuser.com/a/320914
或通过您的php.ini取消注释以下内容:
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
希望这有助于其他人
不确定这是否相关......我通过CentOS 7 GCE连接到Cloud SQL时出现“权限被拒绝”问题。
发现它与SELinux有关,并找到了以下解决方案: Connect DATABASE错误类型:2002:权限被拒绝
基本上是setsebool -P httpd_can_network_connect_db 1
这解决了我的问题,而没有禁用SELinux。
希望它能帮助那些阅读此内容的人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.