Laravel连接Microsoft SQL Server时出现Could not find driver错误求助
解决Laravel连接SQL Server时的"could not find driver"错误
这个错误的核心原因是PHP缺少SQL Server的PDO驱动,Laravel通过PDO连接SQL Server,必须安装对应驱动才能正常建立连接。以下是针对XAMPP环境(Linux系统)的解决步骤:
1. 确认当前PHP版本
先查看XAMPP使用的PHP版本,执行命令:
/opt/lampp/bin/php -v
记录版本号(如7.4.33、8.1.10),后续安装驱动需要匹配该版本。
2. 安装SQL Server依赖组件
Debian/Ubuntu系系统执行以下命令:
- 安装ODBC开发依赖:
sudo apt-get install unixodbc-dev
- 安装Microsoft ODBC驱动(SQL Server连接的基础组件):
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list sudo apt-get update sudo ACCEPT_EULA=Y apt-get install msodbcsql17
3. 安装PHP的SQL Server扩展
方法一:通过pecl安装(推荐)
直接用XAMPP自带的pecl工具安装对应扩展:
/opt/lampp/bin/pecl install pdo_sqlsrv sqlsrv
安装过程中如果提示是否启用,直接回车确认即可。
方法二:手动安装扩展
如果pecl安装失败,可手动下载对应PHP版本的预编译扩展文件,将文件复制到XAMPP的PHP扩展目录(通常为/opt/lampp/lib/php/extensions/no-debug-non-zts-xxxxxx/,其中xxxxxx为PHP版本对应的目录名)。
4. 启用扩展并重启服务
- 编辑XAMPP的php.ini文件:
sudo nano /opt/lampp/etc/php.ini
- 在文件末尾添加两行:
extension=pdo_sqlsrv.so extension=sqlsrv.so
- 保存后重启XAMPP服务:
sudo /opt/lampp restart
5. 验证驱动是否生效
执行命令检查驱动是否成功加载:
/opt/lampp/bin/php -m | grep pdo_sqlsrv
如果输出pdo_sqlsrv,说明驱动安装成功。
额外检查项
- 确认SQL Server服务器的1433端口对外开放,且允许远程连接;
- 验证
config/database.php中的账号、密码、数据库名称是否正确; - 确保SQL Server账号拥有目标数据库的访问权限。
内容的提问来源于stack exchange,提问作者Shankari
相关产品推荐
相关产品推荐

