在Windows上,larvel 9 PDOException::(“无法找到驱动程序”)

u3r8eeie  于 2022-11-26  发布在  Windows
关注(0)|答案(2)|浏览(170)

我想将MySQL数据库连接到Laravel应用程序。
我使用MySQL的PHPMyAdmin管理工具创建了一个,然后将其添加到.env中,作为database.php应用程序文件。
我运行终端命令:php artisan migrate,它给了我以下错误:

  1. could not find driver (SQL: select * from information_schema.tables where table_schema = pl_project and table_name = migrations and table_type = 'BASE TABLE')
  2. at C:\Users\u\Documents\pl_project_test\pl_project_test\vendor\laravel\framework\src\Illuminate\Database\Connection.php:760
  3. 756 // If an exception occurs when attempting to run a query, we'll format the error
  4. 757 // message to include the bindings with SQL, which will make this exception a
  5. 758 // lot more helpful to the developer instead of just the database's errors.
  6. 759 catch (Exception $e) {
  7. 760 throw new QueryException(
  8. 761 $query, $this->prepareBindings($bindings), $e
  9. 762 );
  10. 763 }
  11. 764 }
  12. 1 C:\Users\u\Documents\pl_project_test\pl_project_test\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
  13. PDOException::("could not find driver")
  14. 2 C:\Users\u\Documents\pl_project_test\pl_project_test\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
  15. PDO::__construct()
以下是我编辑的.env摘录:
  1. DB_CONNECTION=mysql
  2. DB_HOST=127.0.0.1
  3. DB_PORT=3306
  4. DB_DATABASE=pl_project
  5. DB_USERNAME=root
  6. DB_PASSWORD=
以下是我编辑的database.php摘录:
  1. 'mysql' => [
  2. 'driver' => 'mysql',
  3. 'url' => env('DATABASE_URL'),
  4. 'host' => env('DB_HOST', '127.0.0.1'),
  5. 'port' => env('DB_PORT', '3306'),
  6. 'database' => env('DB_DATABASE', 'pl_project'),
  7. 'username' => env('DB_USERNAME', 'root'),
  8. 'password' => env('DB_PASSWORD', ''),
  9. 'unix_socket' => env('DB_SOCKET', ''),
  10. 'charset' => 'utf8mb4',
  11. 'collation' => 'utf8mb4_unicode_ci',
  12. 'prefix' => '',
  13. 'prefix_indexes' => true,
  14. 'strict' => true,
  15. 'engine' => null,
  16. 'options' => extension_loaded('pdo_mysql') ? array_filter([
  17. PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
  18. ]) : [],
  19. ]
以下是命令的输出:php -m
  1. [PHP Modules]
  2. bcmath
  3. calendar
  4. Core
  5. ctype
  6. curl
  7. date
  8. dom
  9. fileinfo
  10. filter
  11. hash
  12. iconv
  13. json
  14. libxml
  15. mbstring
  16. mysqlnd
  17. openssl
  18. pcre
  19. PDO
  20. Phar
  21. readline
  22. Reflection
  23. session
  24. SimpleXML
  25. SPL
  26. standard
  27. tokenizer
  28. xml
  29. xmlreader
  30. xmlwriter
  31. zip
  32. zlib
  33. [Zend Modules]
几点注意事项:

1.我确实向我的 env 变量和MySQL添加了PHP。
1.我在php.ini中取消了对extension=pdo_mysql的注解。
但这一切都没有改变什么,我仍然得到同样的错误。

2j4z5cfb

2j4z5cfb1#

没有必要编辑database.php文件,因为它正在使用.env作为数据库信息。如果这是一个没有.env文件的新项目,请尝试运行php artisan config:clear
您是否尝试过在启用扩展后重新启动PC?如果您使用Artisan serve运行项目,则在更改ini文件后不会反映出来
我也有一些类似的问题,在几个机器与数据库,它得到了解决与注解'url' =〉env('DATABASE_URL'),行在mysql
希望这些能有所帮助

ql3eal8s

ql3eal8s2#

  • 备注:*

我检查了所有的php.ini文件,有2个,所以我编辑了第二个。重新启动服务器,然后再次尝试迁移,只得到相同的错误。
根据我的记忆,默认的XAMPP安装 lucks 路径xampp/php/中的php.ini文件。
但是在该路径中有php.ini-developmentphp.ini-production配置文件。通常您必须创建这两个文件中任一的副本,这取决于您的用例,并 * 将 “副本” 重命名为php.ini。然后,重命名的文件将被视为 “活动/默认PHP配置文件”
然后打开这个新的 * 重命名的 * php.ini文件,取消注解任何必要的扩展库,保存并重新启动XAMPP Web服务器(Apache)。

附录

您可能需要为您的案例启用/取消注解下面的扩展库。

  1. mysqli
  2. pdo_mysql
  3. pdo_sqlite
附录2

A.启用/取消注解下面的行。将路径更改为XAMPP安装路径。即:

  1. extension_dir="C:\xampp\php\ext"
展开查看全部

相关问题