在yii2中进行迁移时异常'找不到驱动器'

问题描述 投票:10回答:6

这是我的堆栈跟踪:

  Exception 'yii\db\Exception' with message 'could not find driver'

in /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Connection.php:534

#0 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Connection.php(836): yii\db\Connection->open()
        #1 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Connection.php(823): yii\db\Connection->getMasterPdo()
        #2 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Command.php(208): yii\db\Connection->getSlavePdo()
        #3 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Command.php(816): yii\db\Command->prepare(true)
        #4 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Command.php(350): yii\db\Command->queryInternal('fetchAll', NULL)
        #5 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/mysql/Schema.php(198): yii\db\Command->queryAll()
        #6 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/mysql/Schema.php(97): yii\db\mysql\Schema->findColumns(Object(yii\db\TableSchema))
        #7 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Schema.php(140): yii\db\mysql\Schema->loadTableSchema('migration')
        #8 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/controllers/MigrateController.php(121): yii\db\Schema->getTableSchema('{{%migration}}', true)
        #9 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(610): yii\console\controllers\MigrateController->getMigrationHistory(NULL)
        #10 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(102): yii\console\controllers\BaseMigrateController->getNewMigrations()
        #11 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0)
        #12 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/base/InlineAction.php(55): call_user_func_array(Array, Array)
        #13 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/base/Controller.php(151): yii\base\InlineAction->runWithParams(Array)
        #14 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/Controller.php(91): yii\base\Controller->runAction('', Array)
        #15 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/base/Module.php(455): yii\console\Controller->runAction('', Array)
        #16 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/Application.php(161): yii\base\Module->runAction('migrate', Array)
        #17 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/Application.php(137): yii\console\Application->runAction('migrate', Array)
        #18 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/base/Application.php(375): yii\console\Application->handleRequest(Object(yii\console\Request))
        #19 /opt/lampp/htdocs/advanced/yii(31): yii\base\Application->run()
        #20 {main}

我是yii2的新手。我在advaced/common/config/main-local.php中添加了数据库名称,用户名。使用xampp网络服务器和php版本是5.6.8,并且还启用了PDO。

这是我的数据库配置。

'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ],
php mysql pdo yii2 yii2-advanced-app
6个回答
12
投票

Yii2上找到此内容

“最有可能是您的系统配置。如果您使用类似MAMP,XAMPP或其他,您可能需要将“ localhost”更改为db.php配置文件中的“ 127.0.0.1”。另外,如果你在Linux,您可能需要安装其他一些其他软件包,例如php5-mysql之类的东西。“


7
投票

在Yii2(高级)迁移期间(在Ubuntu 14.04和PHP中为Xampp),我遇到了类似的情况

这是我收到的消息:

带有消息'找不到驱动程序'的异常'yii \ db \ Exception'

因此,在谷歌搜索并阅读了该线程以及其他线程之后,我发现这可能是可能的问题

PHP扩展名“ pdo_mysql”被禁用或根本没有安装

并在我的终端上尝试了此:

php -m

在意识到该模块不存在之后...

sudo apt-get install php5-gd php5-mysql

并且在快速安装后,必须重新启动该服务...

sudo /opt/lampp/lampp restart

....最终(重试迁移)

php yii migrate

成功迁移。

希望您发现它有用并且对他人有用。

我在ask ubuntu上发现了它,但是我无法添加链接或代码,因为这是我的第一篇文章。

链接:http://www.yiiframework.com/forum/index.php/topic/49450-error-on-migrate-command-advanced-yii2-app/


3
投票

我有完全相同的错误。搜索时,我发现巴西人对引起类似问题的评论,因为他在计算机上安装了两个不同的php版本。

我检查了/ opt / lampp / bin目录,发现了两个不同的php版本,一个只是普通的“ php”,另一个则是“ php-5.6.8”,所以我决定运行第二个版本,并且可以运行!

test @ pctest:〜$ /opt/lampp/bin/php-5.6.8 / opt / lampp / htdocs / advanced / yii迁移


0
投票

我有相同的错误,但是我没有使用xampp而是将Fedora 25与Apache一起使用,对我来说'dnf install -y php-mysqlnd'修复了此错误,因此您可能缺少扩展名。


0
投票

我通过这样更改PHP路径解决了这个问题

  1. 右键单击“我的电脑”,然后单击“属性”
  2. 单击“高级系统设置”
  3. 单击“环境变量”
  4. 在系统变量中找到“路径”,双击它。
  5. 查找您的PHP路径,如果还没有,请添加它,例如“ D:\ xampp \ php”
  6. 单击确定,然后重新启动Apache服务器。
  7. 就这样,我可以迁移数据库了。

0
投票

就我而言:

  • 在php \ php.ini中添加“ extension = php_pdo_mysql.dll”
© www.soinside.com 2019 - 2024. All rights reserved.