由于找不到pdo_mysql驱动程序而导致Yiic迁移错误

时间:2013-12-19 22:00:24

标签: php mysql yii pdo

我正在努力学习Yii,但是每当我使用yiic时,我都会遇到一个非常持久的错误。 第一个系统细节:Ubuntu 13.04与apache2,php 5.5.3和mysql 5.5.3。 我运行/yiic migrate

我正在开发的webapp内部/受保护。

我收到错误:

exception 'CDbException' with message 'CDbConnection failed to open the DB connection: could not find driver' in /var/www/yii/framework/db/CDbConnection.php:382

这似乎是因为在CDbConnection.php的第382行,脚本会检查pod_mysql是否已安装,但无法找到它。

`if($this->_pdo===null)
 {
    if(empty($this->connectionString))
         throw new CDbException('CDbConnection.connectionString cannot be empty.');
    try
    {
         Yii::trace('Opening DB connection','system.db.CDbConnection');
         $this->_pdo=$this->createPdoInstance();
         $this->initConnection($this->_pdo);
         $this->_active=true;
    }
    catch(PDOException $e)
    {
        if(YII_DEBUG)
        {
           throw new CDbException('CDbConnection failed to open the DB connection:'.

                                  $e->getMessage(),(int)$e->getCode(),$e->errorInfo);

        }
        else
        {                                        
           Yii::log($e->getMessage(),CLogger::LEVEL_ERROR,'exception.CDbException');

           throw new CDbException('CDbConnection failed to open the DB connection.' 

                                  ,(int)$e->getCode(),$e->errorInfo);
    }
    }
}

^^这是相关的代码片段。

运行结果

php -i|grep PDO gives 
PDO
PDO support => enabled 
PDO drivers => sqlite
PDO Driver for SQLite 3.x => enabled

所以我的问题似乎是只有sqlite驱动程序正在运行。但是,我已经确保检查是否安装了php-mysql(因为pdo_mysql已被弃用且位于此包中)。我已经完成了关于该做什么的想法,并会感激任何和所有的帮助!!

提前致谢!

2 个答案:

答案 0 :(得分:2)

控制台应用程序将自己的配置存储在protected/config/console.php中。请确保您在那里配置了数据库组件。

答案 1 :(得分:0)

此问题来自您的 php cli.ini ,而不是 php cli.ini php cli.ini ,您应该添加:< / p>

extension=php_pdo_mysql.dll

,如 php.ini