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

Symfony 5.3 连接 Microsoft SQL Server (MSSQL) 问题求助

Symfony 5.3 连接 Microsoft SQL Server 配置方案

前置依赖校验

  • 安装对应PHP版本的pdo_sqlsrv和sqlsrv扩展:Windows环境直接下载对应dll文件放入扩展目录,在php.ini中添加extension=pdo_sqlsrv、extension=sqlsrv配置;Linux环境需先安装Microsoft ODBC Driver for SQL Server,再编译安装对应扩展。
  • 确认项目已安装Doctrine核心依赖:执行composer require doctrine/doctrine-bundle doctrine/orm完成依赖安装。
  • 校验Doctrine DBAL版本:要求版本≥2.10,低版本对sqlsrv驱动兼容性不足,执行composer show doctrine/dbal查看当前版本,版本过低可执行composer update doctrine/dbal升级。

配置文件修改

1. 根目录.env文件配置

修改数据库连接串配置项:
DATABASE_URL="sqlsrv://<数据库用户名>:<数据库密码>@<MSSQL服务器地址>:<端口,默认1433>/<数据库名称>?serverVersion=<你的MSSQL版本号,例如15.0对应SQL Server 2019>"

若使用Windows本地集成身份验证,可省略用户名密码,格式为:DATABASE_URL="sqlsrv://:@127.0.0.1:1433/数据库名?serverVersion=15.0"

2. Doctrine配置文件修改

打开config/packages/doctrine.yaml,确认dbal配置段匹配sqlsrv驱动:

doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL)%'
        driver: 'pdo_sqlsrv'
        charset: UTF-8

连接有效性验证

执行Symfony控制台命令测试连接:
php bin/console doctrine:query:sql "SELECT @@VERSION"
正常返回MSSQL版本信息即说明连接成功。

常见错误排查

  • 提示「driver not found」:检查php.ini是否已启用pdo_sqlsrv扩展,确认cli和web服务(fpm/apache)使用的是同一份php.ini配置文件。
  • 提示「Login failed for user」:确认账号密码正确,MSSQL服务器已开启「SQL Server和Windows身份验证模式」,而非仅Windows身份验证。
  • 提示「连接超时」:确认MSSQL服务器1433端口已放行,未被防火墙拦截,服务器地址、端口填写正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:54:03