【问题标题】:Exception 'could not find driver' while migration in yii2在 yii2 中迁移时出现异常“找不到驱动程序”
【发布时间】:2015-05-10 18:21:39
【问题描述】:

这是我的堆栈跟踪:

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

【问题讨论】:

标签: php mysql pdo yii2 yii2-advanced-app


【解决方案1】:

Yii2 找到这个

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

【讨论】:

  • 谢谢,我用的是ubuntu,安装了php5-mysql,把主机名改成ip地址就可以了……
  • 我使用的是 windows XP,即使我更改为 127.0.0.1 而不是 localhost 仍然存在相同的问题,供您参考,我的系统中有 PHP 7.0.2 版本
  • 我正在使用 CentOS,使用 ip 而不是 localhost 对我不起作用。
  • @huuang 只需在终端中运行“sudo apt-get install php-mysql”
【解决方案2】:

就我而言(在 Ubuntu 上):

sudo apt-get install php-mysql  
sudo service apache2 restart

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      就我而言:

      在 php\php.ini 中添加extension=php_pdo_mysql.dll

      【讨论】:

        【解决方案5】:

        我遇到了完全相同的错误。搜索时,我发现了一个巴西人的评论,说他的电脑上安装了两个不同的 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

        【讨论】:

          【解决方案6】:

          我遇到了同样的错误,但我使用 Fedora 25 和 Apache 而不是 xampp,对我来说,'dnf install -y php-mysqlnd' 修复了这个错误,所以你可能缺少扩展。

          【讨论】:

          【解决方案7】:

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

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

          【讨论】:

            【解决方案8】:

            我重新配置了php,添加了这个标志:

            --with-pdo-mysql
            

            我正在使用 LAMP,这对我有用。

            【讨论】:

              猜你喜欢
              • 2023-04-01
              • 2018-09-04
              • 2019-01-27
              • 2018-03-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多