在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服务器
我怎么能解决这个问题?
答案 0 :(得分:6)
我正在使用Linux Mint ..在我的情况下,我需要
apt-get install php5-mysql
因为我正在将我的环境从Lampp转移到Apache + PHP + MySQL而且我不得不在php.ini中改变很多东西
答案 1 :(得分:3)
您应该检查的事项
首先,您应该检查安装的pdo_drivers的phpinfo()。
如果你使用IIS服务器,你应该检查是否安装了php扩展。
检查php.ini是否正确给出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连接
答案 2 :(得分:2)
我正在使用Linux Ubuntu。
我有同样的问题,但在我的情况下,我必须安装php-mysql。
sudo apt-get install php5-mysql
并重启服务
sudo service apache2 restart
我希望那可以帮到某人
答案 3 :(得分:1)
尝试使用Ubuntu中的以下命令安装Sqlite
驱动器
sudo apt-get install sqlite php5-sqlite
现在使用以下命令重新启动Apache服务器
service apache2 restart
这两步解决了我的问题。希望它能解决其他问题......
答案 4 :(得分:1)
在我的情况下,我还必须启用pdo_sqlite模块,这解决了这个问题。它是在HOSTiq.com.ua托管上。我想它可以节省几个小时的搜索时间。
答案 5 :(得分:1)
我的解决方案是:
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。
答案 6 :(得分:0)
在当前版本的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:'connectionString' => 'mysql:host=deathstar;port=3306;dbname=database'
答案 7 :(得分:0)
如果你只是用这个
得到它apt-get install php-mysql
你可以试试这个
apt-get install php-pear php5-dev libmysqlclient15-dev
pecl install pdo
pecl install pdo_mysql
我发现谷歌搜索它是唯一适用于我的