You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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服务未运行:

  1. 检查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版本)
  2. 确认MySQL服务正常运行

    • 在虚拟机内执行sudo systemctl status mysql,查看服务状态
    • 如果未运行,执行sudo systemctl start mysql启动服务
  3. 清除配置缓存
    有时候.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:56:55