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

Laravel 7.3连接SQL Server 16报错08001的问题求助

Laravel 7.3连接SQL Server 16报错08001的解决问题

问题描述

使用Laravel 7.3连接SQL Server 16数据库时,出现错误:

SQLSTATE = 08001 error- No connection could be made because the target machine actively refused it.

当前.env配置如下:

DB_CONNECTION=sqlsrv
DB_HOST=127.0.0.1/instancename
DB_PORT=1433
DB_DATABASE=Database
DB_USERNAME=sa
DB_PASSWORD=12345678

但使用原生PHP脚本可以成功连接:

<?php 
$serverName = "127.0.0.1/instancename";
$connectionInfo = array( "Database"=>"Database", "UID"=>"sa", "PWD"=>"12345678");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
echo "Connexion établie.<br />";
}else{
echo "La connexion n'a pu être établie.<br />";
die( print_r( sqlsrv_errors(), true));

}
?>

解决方案

问题出在Laravel处理SQL Server连接配置的逻辑上,当DB_HOST包含实例名时,Laravel的拼接规则会导致连接字符串不符合sqlsrv扩展的要求,以下是两种可行的解决方法:

方法1:拆分主机与实例名配置

  1. 修改.env文件,将实例名从DB_HOST中分离,新增DB_INSTANCE项:
DB_CONNECTION=sqlsrv
DB_HOST=127.0.0.1
DB_PORT=1433
DB_INSTANCE=instancename
DB_DATABASE=Database
DB_USERNAME=sa
DB_PASSWORD=12345678
  1. 打开config/database.php,找到sqlsrv连接配置块,添加instance配置项:
'sqlsrv' => [
    'driver' => 'sqlsrv',
    'host' => env('DB_HOST', 'localhost'),
    'port' => env('DB_PORT', '1433'),
    'instance' => env('DB_INSTANCE'), // 新增该行
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'prefix' => '',
    'prefix_indexes' => true,
],

方法2:直接使用完整服务器/实例格式并清空端口

SQL Server实例通常使用动态端口,指定固定1433端口会干扰连接。修改.env如下:

DB_CONNECTION=sqlsrv
DB_HOST=127.0.0.1\instancename
DB_PORT=
DB_DATABASE=Database
DB_USERNAME=sa
DB_PASSWORD=12345678

注意:这里要用反斜杠(\),不是斜杠(/)

验证操作

修改配置后,执行命令清除Laravel的配置缓存:

php artisan config:clear

可以添加测试路由验证连接状态:

// 在routes/web.php中添加
Route::get('/test-db', function() {
    try {
        DB::connection()->getPdo();
        return "数据库连接成功!";
    } catch (\Exception $e) {
        return "连接失败:" . $e->getMessage();
    }
});

访问该路由即可确认连接是否恢复正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:45:36