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
在此处找到答案:
我正在尝试 运行 按照本教程进行迁移 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
在此处找到答案: