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

Laravel 5.5全新安装迁移失败:Could not find driver问题求助

解决Laravel 5.5 migrate报错"could not find driver"的方案

我之前也碰到过一模一样的情况,这个报错核心就是PHP没有加载对应数据库的PDO扩展驱动,不管是MySQL还是PostgreSQL,解决思路都是先确认PHP扩展状态,再一步步排查配置,咱们来理清楚:

第一步:确认PHP CLI使用的配置文件

Windows下很容易踩的坑是:网页端(比如XAMPP的Apache)用的php.ini和命令行(CLI)用的不是同一个!所以首先得找到当前CLI模式下PHP的配置文件:
在终端执行:

php --ini

输出里的Loaded Configuration File就是你需要修改的那个php.ini,别搞错文件白忙活!

第二步:开启对应数据库的PDO扩展

打开上面找到的php.ini文件,找到以下扩展行,去掉前面的分号;来启用:

针对PostgreSQL(你当前配置的数据库)

extension=pdo_pgsql.dll
extension=pgsql.dll

针对MySQL(你之前测试的数据库)

extension=pdo_mysql.dll

另外要确认PHP安装目录下的ext文件夹里存在对应的dll文件(比如php_pdo_pgsql.dll、php_pgsql.dll),如果没有,需要下载和你PHP 7.1.11版本完全匹配的扩展包(注意线程安全/非线程安全、x86/x64要对应),把dll文件放到ext文件夹里再重启配置。

第三步:验证扩展是否加载成功

修改完php.ini后,一定要重启终端(或者直接重启电脑,确保PHP重新加载配置),然后执行:

php -m

查看输出列表里有没有pdo_pgsql、pgsql(PostgreSQL)或者pdo_mysql(MySQL),如果有就说明扩展已经加载成功了。

第四步:测试数据库基础连接

先排除Laravel的问题,写个简单的测试脚本test_connection.php:

<?php
// 测试PostgreSQL连接(对应你的.env配置)
try {
    $pdo = new PDO('pgsql:host=127.0.0.1;port=5432;dbname=projects', 'garden', 'postgres');
    echo "PostgreSQL 连接成功!";
} catch (PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}

在终端执行:

php test_connection.php

如果能输出连接成功,说明数据库和PHP的连接没问题,接下来就看Laravel的配置。

第五步:Laravel配置排查

  • 确认.env文件里的配置没有拼写错误,比如DB_CONNECTION=pgsql、数据库名、用户名密码都和PostgreSQL里的一致
  • 有时候Laravel会缓存旧配置,执行以下命令清除缓存:
php artisan config:clear
  • 最后再执行php artisan migrate试试,应该就能正常运行了。

额外提醒:如果你用的是XAMPP的PHP,一定要确认终端里的PHP版本是XAMPP的7.1.11,执行php -v就能看到版本信息,避免系统里有其他PHP版本导致冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:32:04