我遇到了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函数传递。
非常感谢任何帮助。
谢谢,
答案 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。
希望它可以帮助阅读此书的人。