2014-07-03 49 views
1

我遇到了Yii和運行在Google Cloud sql上的mysql數據庫的問題。Yii CDbConnection未能打開數據庫連接:找不到驅動程序與谷歌雲

快速概述:

我們已經從現有的服務器搬到這個地方全部用完全沒有問題的工作,現在已成立了谷歌Compute Engine的服務器使用PHP和所有的relivant司機mysql_pdo是一個其中。我們還有一個Google Cloud SQL數據庫,用於存儲我們現有的所有數據庫信息。

我已經試過

我寫它採用 PDO('mysql:<IPADDRESS>;dbname=<MYDBNAME>,'MYUSERNAME','MYPASSWORD');這種連接精絕,可以讀取表,並返回數據的簡單的PHP腳本。

的問題

只要我做同樣的警予在config/main.php似乎不工作並且得到錯誤:CDbConnection未能打開數據庫連接:不能發現司機

這裏是警予連接字符串

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

我也跑作爲通過了MySQL的PDO F中的警予的要求腳本,並將其所有收益unctions。

enter image description here

任何幫助將不勝感激。

感謝,

回答

2

啊哈回答我的問題:

服務器需要有sqlite的PDO擴展以及MySQL的PDO擴展。現在所有的工作都完美了!

所以這是值得檢查您的phpinfo這個

你可以根據這個答案添加:https://superuser.com/a/320914

或通過你的php.ini取消以下:

extension=php_pdo_sqlite.dll 

extension=php_sqlite.dll 

希望這有助於其他人

+0

你使用SQlite還是MySQL? – Roel

+0

我們使用MySQL,不記得它爲什麼需要sqlite,我認爲這是與yii和數據庫功能相關的東西。 – Rich

+0

對我來說,我碰巧需要sqlite(不僅僅是mysql),因爲配置爲使用sqlite的緩存功能 - 我最初忽略了這些功能(並且失去了太多時間來搜索爲什麼會出現此錯誤)。 – Zbyszek

0
'db'=>array(   
     'class'   => 'CDbConnection' , 
     'connectionString' => 'mysql:host=127.0.0.1;dbname=dinnerway', 
     'username'   => 'root', 
     'password'   => 'QbtL0M33saMV9hO6', 
     'charset'   => 'utf8', 
     'tablePrefix'  => 'mt_', 
    ) 

//刪除「'emulateP repare'=> true,「

這對我有效。

相關問題