簡體   English   中英

CDbConnection無法打開數據庫連接:在Yii中找不到驅動程序

[英]CDbConnection failed to open the DB connection: could not find driver in Yii

在嘗試與yii框架中的mysql連接時,它顯示

“CDbConnection無法打開數據庫連接:找不到驅動程序”錯誤

php代碼:

     'db'=>array(
        'class' => 'CDbConnection',
        'connectionString' => 'mysql:host=localhost:3306;dbname=testdrive',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => 'root',
        'charset' => 'utf8',
    ), 

我的PHP驅動程序已經啟用,但它顯示相同的錯誤

我正在使用zend studio,zend服務器

我怎么能解決這個問題?

我正在使用Linux Mint ..在我的情況下,我需要

apt-get install php5-mysql 

因為我正在將我的環境從Lampp轉移到Apache + PHP + MySQL,我不得不在php.ini中改變很多東西

你應該檢查的事情

首先,您應該檢查安裝的pdo_drivers的phpinfo()。

如果您使用IIS服務器,您應該檢查是否安裝了php擴展。

檢查php.ini for extensions_dir是否正確給出

檢查你在php中的ext文件夾包含pdo_mysql dll

有時可能由於zend服務器安裝而出現問題。你應該檢查zend服務器是否正確使用php擴展

之后使用以下函數檢查簡單的php-mysql連接

mysql_connect('localhost:3306','root','root');
mysql_select_db('testdrive');

如果它工作,那么使用Yii,Slim,Zend php-mysql連接

我正在使用Linux Ubuntu。

我有同樣的問題,但在我的情況下,我必須安裝php-mysql。

sudo apt-get install php5-mysql

並重新啟動該服務

sudo service apache2 restart

我希望那可以幫助別人

嘗試使用Ubuntu中的以下命令安裝Sqlite驅動器

sudo apt-get install sqlite php5-sqlite

現在使用以下命令重新啟動Apache服務器

service apache2 restart

這兩步解決了我的問題。 希望它能解決其他問題......

在我的情況下,我還必須啟用pdo_sqlite模塊,這解決了這個問題。 它是在HOSTiq.com.ua托管上。 我想它可以節省幾個小時的搜索時間。

我的解決方案是:

    cache' => array(
        'class' => 'system.caching.CDbCache',
        //'class' => 'system.caching.CFileCache',
        'connectionID'=>'db', // <<< THIS IS THE ISSUE
    ),

如果未設置connectionID,則db緩存默認為/ protected / data目錄中的mysqli數據庫,如果系統上未安裝mysqli驅動程序,則無法訪問該數據庫(常見問題與專用服務器,DO drop,xampp / wamp ......)

或者,您可以禁用數據庫緩存並啟用fileCache。

在當前版本的Yii中,您有一個目錄要求 它將啟動Yii Requirement Checker並向您顯示缺少的內容。

之后,在main.php中獲取連接字符串

'db'=>array(
            'connectionString' => 'mysql:host=deathstar;port=3306;dbname=database',
            'emulatePrepare' => true,
            'username' => 'user',
            'password' => 'pass',
            'charset' => 'utf8',
            'tablePrefix' => 'tbl_'
),

就我而言,這是非常愚蠢的事情。 我忘記了mysql: in

'connectionString' => 'mysql:host=deathstar;port=3306;dbname=database'

如果你不這樣做的話

apt-get install php-mysql

你可以試試這個

apt-get install php-pear php5-dev libmysqlclient15-dev
pecl install pdo
pecl install pdo_mysql

我發現谷歌搜索它是唯一適合我的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM