Yii迁移问题

3

我是PHP和Yii PHP框架的新手。

我正在尝试在我的本地计算机上运行一个应用程序。首先需要迁移数据库。为此,我运行以下命令:

protected/yiic migrate

但它抛出 CDbException,并显示以下堆栈跟踪...

Yii Migration Tool v1.0 (based on Yii v1.1.14)

exception 'CDbException' with message 'CDbConnection failed to open the DB connection: could not find driver' in /var/www/Prepaid-Card/web/framework/db/CDbConnection.php:382
Stack trace:
#0 /var/www/Prepaid-Card/web/framework/db/CDbConnection.php(330): CDbConnection->open()
#1 /var/www/Prepaid-Card/web/framework/db/CDbConnection.php(308): CDbConnection->setActive(true)
#2 /var/www/Prepaid-Card/web/framework/base/CModule.php(387): CDbConnection->init()
#3 /var/www/Prepaid-Card/web/framework/cli/commands/MigrateCommand.php(442): CModule->getComponent('db')
#4 /var/www/Prepaid-Card/web/framework/cli/commands/MigrateCommand.php(451): MigrateCommand->getDbConnection()
#5 /var/www/Prepaid-Card/web/framework/cli/commands/MigrateCommand.php(482): MigrateCommand->getMigrationHistory(-1)
#6 /var/www/Prepaid-Card/web/framework/cli/commands/MigrateCommand.php(84): MigrateCommand->getNewMigrations()
#7 [internal function]: MigrateCommand->actionUp(Array)
#8 /var/www/Prepaid-Card/web/framework/console/CConsoleCommand.php(172): ReflectionMethod->invokeArgs(Object(MigrateCommand), Array)
#9 /var/www/Prepaid-Card/web/framework/console/CConsoleCommandRunner.php(71): CConsoleCommand->run(Array)
#10 /var/www/Prepaid-Card/web/framework/console/CConsoleApplication.php(92): CConsoleCommandRunner->run(Array)
#11 /var/www/Prepaid-Card/web/framework/base/CApplication.php(180): CConsoleApplication->processRequest()
#12 /var/www/Prepaid-Card/web/framework/yiic.php(33): CApplication->run()
#13 /var/www/Prepaid-Card/web/protected/yiic.php(7): require_once('/var/www/Prepai...')
#14 /var/www/Prepaid-Card/web/protected/yiic(4): require_once('/var/www/Prepai...')

这是我的console.php文件:

<?php

return array(
    'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
    'name' => 'Prepaid Card',
    // preloading 'log' component
    'preload' => array('log'),
    'import' => array(
        'application.models.*',
        'application.components.*',
        'application.extensions.*',
        'ext.YiiMailer.YiiMailer'
    ),
    // application components
    'components' => array(
        'db' => require(dirname(__FILE__) . '/../../../../DbConfig.php'),
        'log' => array(
            'class' => 'CLogRouter',
            'routes' => array(
                array(
                    'class' => 'CFileLogRoute',
                    'levels' => 'error, warning',
                ),
            ),
        ),
    )
);

我已经安装了MySQL,并创建了相应的数据库。我的DbConfig文件如下:

<?php
return array(
    'connectionString' => 'mysql:host=localhost;dbname=db_ppc',
    'emulatePrepare' => true,
    'username' => 'root',
    'password' => 'helloworld',
    'charset' => 'utf8',
);

我只是无法弄清楚这里的问题。
我在这里做错了什么?可能是什么原因导致了这个问题?请帮助我解决它。
谢谢!

这是数据库连接错误,请检查您的MySQL连接。 - ramamoorthy_villi
2
你的系统中安装了PDO吗? - JorgeeFG
是的,但@ramamoorthy_villi,我有正确的MySQL连接凭据...那就是问题所在吗?我无法弄清楚我做错了什么? - Runcorn
@Jorge 感谢你的提示。是的,它没有被安装。 :D - Runcorn
1个回答

1
"CDbConnection无法打开数据库连接:找不到驱动程序"。此消息告诉您,您的环境配置存在问题。检查您的php配置文件以获取数据库驱动程序,并重新启动/重新加载apache以加载新配置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接