CDbConnection无法打开数据库连接:在Yii中找不到驱动程序

egmofgnx  于 2022-11-09  发布在  其他
关注(0)|答案(8)|浏览(137)

当试图在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服务器
我该怎么补救呢?

drkbr07n

drkbr07n1#

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

apt-get install php5-mysql

因为我正在将我的环境从Lampp迁移到Apache + PHP + MySQL,并且我不得不在php.ini中更改很多内容,

unhi4e5o

unhi4e5o2#

您应该检查的事项

首先,您应该检查phpinfo()以查找已安装的pdo_drivers。
如果你使用IIS服务器,你应该检查是否安装了php扩展。
检查php.ini中是否正确给出了extensions_dir
检查你的文件夹是否包含pdo_mysql dll
有时候这个问题可能是由于zend服务器的安装造成的。你应该检查一下zend服务器是否正确使用了php扩展
之后,使用以下函数检查简单的php-mysql连接

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

如果它的工作,然后去与Yii,Slim,Zend的php-mysql连接

4jb9z9bj

4jb9z9bj3#

尝试在Ubuntu中使用以下命令安装Sqlite驱动程序

sudo apt-get install sqlite php5-sqlite

现在,使用以下命令重新启动Apache服务器

service apache2 restart

这两个步骤解决了我的问题。希望它也能解决其他人的问题。

yx2lnoni

yx2lnoni4#

我用的是Linux Ubuntu。
我有同样的问题,但在我的情况下,我必须安装php-mysql。
sudo apt-get install php5-mysql
并重新启动服务

sudo service apache2 restart

我希望这能帮助到一些人

km0tfn4u

km0tfn4u5#

在我的例子中,我还必须启用pdo_sqlite模块,这解决了问题。它是在一个HOSTiq.com.ua主机上。我想它可以保存一些人几个小时的搜索。

nc1teljy

nc1teljy6#

我的解决方案是这样的:

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

如果未设置connectionID,则数据库缓存默认为/protected/data目录中的mysqli数据库,如果系统上未安装mysqli驱动程序,则无法访问该目录(专用服务器、DO droplet、xampp/wamp等的常见问题)
或者,您可以禁用数据库缓存并启用fileCache。

hgb9j2n6

hgb9j2n67#

在当前版本的Yii中,您有一个目录requirements。它会启动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'
6qqygrtg

6qqygrtg8#

如果你不能得到它只有这个

apt-get install php-mysql

你可以试试这个

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

我发现谷歌搜索是唯一对我有用的方法

相关问题