这是我的堆栈跟踪:
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 webserver和php的版本是5.6.8并且还启用了PDO。
这是我的数据库配置。
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
答案 0 :(得分:11)
在Yii2
上找到了这个"很可能是你的系统配置。如果你正在使用像 MAMP,XAMPP或其他,您可能需要更改" localhost"至 " 127.0.0.1"在db.php配置文件中。如果你在 你可能需要安装一些其他类似的软件包 php5-mysql和类似的东西。"
答案 1 :(得分:6)
我在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时发现它但我无法添加链接或代码,因为这是我的第一篇文章。
link:http://www.yiiframework.com/forum/index.php/topic/49450-error-on-migrate-command-advanced-yii2-app/
答案 2 :(得分: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 migrate
答案 3 :(得分:1)
就我而言(在Ubuntu上):
sudo apt-get install php-mysql
sudo service apache2 restart
答案 4 :(得分:0)
我有同样的错误,但是我使用Fedora 25和Apache代替xampp,对于我来说'dnf install -y php-mysqlnd'修复了这个错误,所以你可能缺少扩展。
答案 5 :(得分:0)
我通过更改PHP路径来解决此问题
答案 6 :(得分:0)
就我而言:
在php \ php.ini中添加extension=php_pdo_mysql.dll
答案 7 :(得分:0)
我重新配置php,添加标志
--with-pdo-mysql
我的情况(LAMP)对我有用。