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

Laravel 10数据库连接报错:could not find driver问题求助

排查Laravel 10数据库连接「could not find driver」问题

核心原因分析

能正常执行迁移却无法读写数据,说明CLI环境的PHP配置和Web请求环境的PHP配置不一致——迁移依赖CLI版PHP,而Web接口依赖Web服务(Nginx/Apache)对应的PHP环境,后者缺少MySQL驱动扩展。

具体排查修复步骤

  • 检查Web环境的PHP MySQL扩展
    新建phpinfo.php文件,写入:

    <?php phpinfo(); ?>
    

    访问该文件,搜索「pdo_mysql」或「mysqlnd」,如果没有相关条目,说明Web环境的PHP未安装MySQL驱动:

    • Ubuntu/Debian(对应PHP版本,比如8.2):sudo apt install php8.2-mysql
    • CentOS/RHEL:sudo dnf install php-mysqlnd
    • Windows:打开php.ini,取消注释extension=pdo_mysql和extension=mysqli,保存后重启Web服务
  • 确认CLI与Web的PHP版本一致
    终端执行php -v,对比phpinfo页面显示的PHP版本,若版本不同,说明两个环境用了不同的PHP,需确保Web环境的PHP安装了对应驱动。

  • 验证Laravel数据库配置
    检查.env文件中DB_CONNECTION=mysql,以及DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD是否正确,避免空格或拼写错误。可在控制器中临时添加:

    dd(DB::connection()->getPdo());
    

    执行请求查看输出,确认连接状态。

  • 重启服务生效
    安装扩展或修改配置后,必须重启Web服务器和PHP-FPM:

    # Nginx + PHP-FPM示例
    sudo systemctl restart nginx php8.2-fpm
    

额外注意(针对JobController)

  • 确保控制器顶部正确引入依赖:use Illuminate\Support\Facades\DB; 或对应模型use App\Models\Job;
  • 修正查询语句的LIKE写法,避免%%的空匹配问题,建议用查询构建器语法:
    $jobs = Job::where('name', 'like', "%{$keyword}%")
                ->orWhere('address', 'like', "%{$keyword}%")
                ->get();
    

内容的提问来源于stack exchange,提问作者Shandy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 23:42:01