Laravel Homestead数据库迁移报错:could not find driver求助
解决Laravel Homestead下
php artisan migrate报could not find driver错误 这个问题本质是PHP的MySQL数据库驱动未启用,或者你搞错了命令的执行环境——毕竟Homestead是基于虚拟机的开发环境,很多人容易在本地Windows终端跑命令,而不是进入虚拟机内部操作。下面分情况给出解决方案:
情况1:你在本地Windows终端执行命令(不推荐)
Homestead的Laravel项目依赖虚拟机内的PHP环境,本地Windows的PHP大概率没安装/启用MySQL扩展,解决步骤:
- 找到本地PHP安装目录下的
php.ini配置文件(比如XAMPP的php/php.ini) - 打开后找到以下两行,去掉前面的分号
;:;extension=pdo_mysql ;extension=mysqli - 确认PHP的
ext文件夹中存在php_pdo_mysql.dll文件 - 重启本地的Web服务器(Apache/Nginx),然后重新执行
php artisan migrate
情况2:你在Homestead虚拟机内执行命令
这是正确的操作方式,出现错误大概率是虚拟机内的PHP扩展未启用或MySQL服务未运行:
检查PHP的MySQL扩展是否启用
- 先通过
vagrant ssh登录到Homestead虚拟机 - 执行
php -m命令,查看输出列表中是否有pdo_mysql和mysqlnd - 如果没有,找到对应PHP版本的配置文件(比如PHP8.2的路径是
/etc/php/8.2/cli/php.ini),编辑文件去掉extension=pdo_mysql和extension=mysqli前的分号 - 重启PHP-FPM服务:
sudo systemctl restart php8.2-fpm(替换为你实际的PHP版本)
- 先通过
确认MySQL服务正常运行
- 在虚拟机内执行
sudo systemctl status mysql,查看服务状态 - 如果未运行,执行
sudo systemctl start mysql启动服务
- 在虚拟机内执行
清除配置缓存
有时候.env的修改不会立即生效,执行以下命令清除缓存:php artisan config:clear之后再重新运行
php artisan migrate
另外,你的.env配置是符合Homestead默认设置的:
DB_CONNECTION=mysql DB_HOST=192.168.10.10 DB_PORT=3306 DB_DATABASE=aff DB_USERNAME=homestead DB_PASSWORD=secret
这部分不需要修改,确保数据库aff已经在Homestead的MySQL中创建(如果没创建,可以先登录MySQL执行CREATE DATABASE aff;)
内容的提问来源于stack exchange,提问作者user7995285
相关产品推荐
相关产品推荐

