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

Laravel中sqlsrv驱动缺失报错求助,已尝试Schema设置仍未解决

Laravel sqlsrv驱动找不到问题解决

我正在学习Laravel框架,使用过程中碰到不少报错,其中一个问题一直解决不了,特此求助。我试过以下代码设置:

use Illuminate\Support\Facades\Schema;

public function initialization()
{
    Schema::defaultStringLength(191);
}

但执行后仍然出现报错:

could not find driver (Connection: sqlsrv, SQL: select top 1 * from [sessions] where [id] = ZvOgLxmPXAuXGtL47cy0GBe2YsyYq9QVkm2pNeBD), Laravel

附上报错截图:
Laravel sqlsrv驱动报错


问题本质

你写的Schema::defaultStringLength(191)是用来解决MySQL字符串长度溢出的问题,和当前「找不到sqlsrv驱动」的报错完全不相关。这个错误的核心是你的PHP环境未安装或启用SQL Server的PDO驱动。

解决步骤

1. 安装PHP的sqlsrv扩展

根据你的PHP版本和操作系统选择对应方式:

  • Windows:
    下载匹配PHP版本、线程安全(TS)/非线程安全(NTS)的php_sqlsrv.dll和php_pdo_sqlsrv.dll,将文件放入PHP安装目录下的ext文件夹。
  • Linux/macOS:
    通过PECL命令安装:
    pecl install sqlsrv pdo_sqlsrv
    

2. 启用扩展

打开php.ini配置文件,添加以下两行(Windows):

extension=sqlsrv
extension=pdo_sqlsrv

Linux/macOS需根据系统配置,在对应扩展配置文件中添加上述内容,确保扩展被加载。

3. 验证扩展状态

执行以下命令检查扩展是否成功加载:

php -m | grep sqlsrv

若输出sqlsrv和pdo_sqlsrv,说明扩展启用成功。

4. 重启服务

修改配置后,必须重启Web服务器(Apache/Nginx)或PHP-FPM服务,让新配置生效。

5. 核对Laravel数据库配置

确认项目根目录下的.env文件中数据库连接参数正确:

DB_CONNECTION=sqlsrv
DB_HOST=你的SQL Server地址
DB_PORT=1433
DB_DATABASE=目标数据库名
DB_USERNAME=数据库账号
DB_PASSWORD=数据库密码

内容的提问来源于stack exchange,提问作者Pedro Josué

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:05:56