user3120781
user3120781

Reputation: 11

Yiic migrate error due to pdo_mysql driver not found

I'm trying to learn Yii, but I'm stuck with a very persistent error that rises whenever I use yiic. First system details: Ubuntu 13.04 with apache2, php 5.5.3 and mysql 5.5.3. I run/yiic migrate

inside /protected of the webapp I'm developing.

I get the error:

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

Which seems to be because at line 382 of CDbConnection.php, the script checks if pod_mysql is installed, but can't find it.

`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);
    }
    }
}

^^ Here is the relevant snippet of code.

The result of running

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

So my problem seems to be that only the sqlite driver is running. However, I've ensured to check that php-mysql is installed (as pdo_mysql is deprecated and is inside this package). I've ran out of ideas on what to do, and will appreciate any and all help!!

Thanks in advance!

Upvotes: 1

Views: 2312

Answers (2)

Sri Wahono
Sri Wahono

Reputation: 1

This problem is from your phpcli.ini instead of php.ini. in your phpcli.ini you should add :

extension=php_pdo_mysql.dll

as in php.ini

Upvotes: 0

DaSourcerer
DaSourcerer

Reputation: 6606

Console applications have their own config stored in protected/config/console.php. Please make sure you've got a database component configured there.

Upvotes: 2

Related Questions