Php 例外情况';找不到驱动程序';在yii2的迁移过程中

Php 例外情况';找不到驱动程序';在yii2的迁移过程中,php,mysql,pdo,yii2,yii2-advanced-app,Php,Mysql,Pdo,Yii2,Yii2 Advanced App,这是我的堆栈跟踪: 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->op

这是我的堆栈跟踪:

  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 Web服务器,php版本为5.6.8,还启用了PDO

这是我的数据库配置

'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=localhost;dbname=yii2advanced',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ],
找到这个了吗

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


我也犯了同样的错误。在搜索中,我发现了一条关于类似问题的巴西评论,因为他的计算机上安装了两个不同的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

在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
..最后(重试迁移)

已成功向上迁移

希望你觉得它有用,并为他人工作

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


链接:

我也有同样的错误,但我没有使用xampp,而是使用Fedora 25和Apache,对我来说,“dnf安装-y php mysqlnd”修复了这个错误,所以您可能缺少扩展。

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

  • 转到“我的电脑”右键单击并单击“属性”
  • 单击“高级系统设置”
  • 单击“环境变量”
  • 在系统变量中找到“路径”,双击它
  • 找到您的PHP路径,如果还没有,则添加它,如“D:\xampp\PHP”
  • 单击OK并重新启动Apache服务器
  • 就这样,我可以迁移数据库了
  • 就我而言:

    在php\php.ini中添加
    extension=php\u pdo\u mysql.dll
    (在Ubuntu上):


    我重新配置php,添加标志

    --with-pdo-mysql
    

    我的情况(LAMP)对我有用。

    可能是重复的谢谢,我使用ubuntu,安装了php5 mysql,在将主机名更改为ip地址后工作正常……我使用的是windows XP,即使我将本地主机更改为127.0.0.1,仍然存在同样的问题,供您参考,我的系统中有PHP7.0.2版本。我使用的是CentOS,使用ip而不是localhost对我不起作用。@Huang只需运行“sudo-apt-get-install-PHP-mysql”,这似乎不是问题的答案。一旦你有足够的钱,你就可以在任何岗位上工作。也检查一下这个。
    sudo apt-get install php-mysql  
    sudo service apache2 restart
    
    --with-pdo-mysql