执行php artisan migrate时出现could not find driver错误求助
Laravel 迁移报错:
could not find driver 我之前也碰到过一模一样的问题!这个错误核心原因是PHP缺少MySQL的PDO扩展驱动,导致Laravel无法和MySQL数据库建立连接。先把你的错误信息和配置贴出来方便对照:
报错信息
In Connection.php第664行: could not find driver (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations) In Connector.php第67行: could not find driver
你的.env数据库配置
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=
接下来咱们一步步解决:
第一步:安装/启用PHP的MySQL PDO扩展
不同系统的操作不一样:- Windows(用XAMPP/WAMP这类集成环境):找到PHP安装目录下的
php.ini文件,找到;extension=pdo_mysql这一行,把前面的分号;删掉,保存后重启你的web服务器(比如Apache)。 - Ubuntu/Debian:打开终端,执行
sudo apt-get install php-mysql(如果你的PHP是特定版本,比如8.2,就用sudo apt-get install php8.2-mysql),安装完成后重启Apache:sudo systemctl restart apache2,如果用Nginx就重启Nginx:sudo systemctl restart nginx。 - CentOS/RHEL:执行
sudo yum install php-mysqlnd,然后重启httpd服务:sudo systemctl restart httpd。
- Windows(用XAMPP/WAMP这类集成环境):找到PHP安装目录下的
第二步:验证扩展是否生效
两种方法任选其一:- 新建一个
phpinfo.php文件,内容写<?php phpinfo(); ?>,放到你的web根目录,访问这个文件,搜索pdo_mysql,如果能看到相关的配置信息,说明扩展已经启用。 - 直接用命令行:执行
php -m | grep pdo_mysql,如果输出pdo_mysql,就说明扩展生效了。
- 新建一个
第三步:刷新Laravel配置缓存
有时候Laravel会缓存旧的配置,导致新的扩展生效后还是报错,执行php artisan config:clear清除配置缓存,然后再重新运行迁移命令php artisan migrate试试。
最后再确认下你的MySQL服务是不是正常运行的:Windows可以去服务列表里看MySQL状态,Linux执行systemctl status mysql就能确认。
内容的提问来源于stack exchange,提问作者Nikita
相关产品推荐
相关产品推荐

