在 yii2 中迁移时出现“找不到驱动程序”异常

新手上路,请多包涵

这是我的堆栈跟踪:

   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',
    ],

原文由 akhil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 717
2 个回答

Yii2 上找到这个

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

原文由 Dan Cundy 发布,翻译遵循 CC BY-SA 3.0 许可协议

我在 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

迁移成功。

希望您发现它有用并为他人工作。

我在询问 ubuntu 时找到了它,但我无法添加链接或代码,因为这是我的第一篇文章。

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

原文由 Levi Saturnino 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏