繁体   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