Laravel 迁移错误 - 找不到 driver - Illuminate\Database\QueryException

Laravel migration error - could not find driver - Illuminate\Database\QueryException

我正在尝试 运行 按照本教程进行迁移 https://www.youtube.com/watch?v=074AQVmvvdg&list=PL4cUxeGkcC9hL6aCFKyagrT1RCfVN4w2Q&index=13

我认为该教程可能已过时,因为当我输入 php artisan migrate; 时出现此错误:

 Illuminate\Database\QueryException 

  could not find driver (SQL: select * from information_schema.tables where table_schema = pizzahouse and table_name = migrations and table_type = 'BASE TABLE')

  at C:\Users\jonke\Documents\laravel\pizzahouse\vendor\laravel\framework\src\Illuminate\Database\Connection.php:703        
    699▕         // If an exception occurs when attempting to 
run a query, we'll format the error
    700▕         // message to include the bindings with SQL, 
which will make this exception a
    701▕         // lot more helpful to the developer instead 
of just the database's errors.
    702▕         catch (Exception $e) {
  ➜ 703▕             throw new QueryException(
    704▕                 $query, $this->prepareBindings($bindings), $e
    705▕             );
    706▕         }
    707▕     }

  1   C:\Users\jonke\Documents\laravel\pizzahouse\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
      PDOException::("could not find driver")

  2   C:\Users\jonke\Documents\laravel\pizzahouse\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
      PDO::__construct()

我已经阅读了视频的评论,我在其中找到了先前错误的解决方案。我尝试了此页面上的以下建议:https://github.com/laravel/framework/issues/24711 这看起来很有希望,但并不令人高兴。

我发现此网站上的页面描述了不同原因的相同错误消息。一个看起来很有前途,但 vscode 不喜欢 sudo apt-get 位。 (我丢失了 link,抱歉)。

这个有类似的标题,但不好:Migration in Laravel 5.6 - could not find driver

我也试过按照官方文档:https://laravel.com/docs/8.x/migrations

我如何能够在 vscode 而不是 运行 迁移中的命令行中创建数据库?我不明白!我这几天一直在转圈圈,有人能帮帮我吗?

谢谢

添加了 JonKemm 解决方案

这是 c:\php7/php.ini - 需要修改一行 - 取消注释此行:extension=pdo_mysql 答案在这里找到:

如果您的问题还没有解决,请进一步尝试

您必须添加驱动程序连接读取代码。您可以在

中找到
config->database.php

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

如果您没有在 b/w

中找到它
'connections' => [
...
],

Above version copied from Laravel Framework 6.20.30

如果您从旧 laravel 版本的这些代码中遗漏了某些内容,请尝试比较或添加一些代码。

如果您在那里没有找到 mysql 代码 复制我的代码并粘贴到您的文件中,如果您在下面发现任何错误评论。

这是 c:\php7/php.ini - 需要修改一行 - 取消注释此行:

extension=pdo_mysql

在此处找到答案: