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

Go连接SQL Server 2014 Express失败:连接被主动拒绝如何解决?

解决SQL Server连接被拒绝的问题

环境

  • Windows 10 x64
  • Go 1.20.1
  • Microsoft SQL Server 2014 Express

代码文件:vy_sql_server.go

package vy_gen_sql_server

// dsn := "sqlserver://sa:12345678@localhost:1433?database=gorm"
import (
    "gorm.io/driver/sqlserver"
    "gorm.io/gen"
    "gorm.io/gorm"
)

// Dynamic SQL
type Querier interface {
    // SELECT * FROM @@table WHERE name = @name{{if role !=""}} AND role = @role{{end}}
    FilterWithNameAndRole(name, role string) ([]gen.T, error)
}

func Main() {
    g := gen.NewGenerator(gen.Config{
        OutPath: "../query",
        Mode:    gen.WithoutContext | gen.WithDefaultQuery | gen.WithQueryInterface, // generate mode
    })

    gormdb, _ := gorm.Open(sqlserver.Open("sqlserver://sa:12345678@localhost:1433?database=MISASME2023Sample"))
    g.UseDB(gormdb) // reuse your gorm db

    // Generate basic type-safe DAO API for struct `model.User` following conventions
    //g.ApplyBasic(model.User{})

    // Generate Type Safe API with Dynamic SQL defined on Querier interface for `model.User` and `model.Company`
    //g.ApplyInterface(func(Querier) {}, model.User{}, model.Company{})

    // Generate the code
    g.Execute()
}

错误信息

2023/03/01 15:24:11 C:/Users/Admin/GolandProjects/vy_learn_gorm_2023_03_01/vy_gen_sql_server/vy_sql_server.go:22
[error] failed to initialize database, got error unable to open tcp connection with host 'localhost:1433': dial tcp [::1]:1433: connectex: No connection could be made because the target machine actively refused it.
2023/03/01 15:24:11 Start generating code.
2023/03/01 15:24:11 Generate code done.   

Process finished with the exit code 0

解决步骤

1. 确认SQL Server服务状态

  • 按下Win + R,输入services.msc打开服务管理器
  • 找到**SQL Server (SQLEXPRESS)**服务,确认状态为正在运行。未启动则右键选择启动

2. 启用并配置TCP/IP协议

  • 打开SQL Server配置管理器(开始菜单搜索即可)
  • 展开SQL Server网络配置 > SQLEXPRESS的协议
  • 右键点击TCP/IP选择启用
  • 双击TCP/IP,切换到IP地址标签,拉到IPAll区域,确认TCP端口为1433
  • 重启SQL Server服务使配置生效

3. 核对连接参数

  • 确认DSN中的sa账户已启用、密码正确
  • 检查数据库名称MISASME2023Sample确实存在于SQL Server中
  • 若本地有多个SQL实例,连接地址需指定实例名,DSN格式改为:
    sqlserver://sa:12345678@localhost\SQLEXPRESS?database=MISASME2023Sample
    

4. 检查防火墙设置

  • 临时关闭Windows防火墙测试连接,若能成功,再添加允许SQL Server程序或1433端口的入站规则

5. 捕获详细错误信息

  • 修改代码,不要忽略gorm.Open的错误,方便排查:
    gormdb, err := gorm.Open(sqlserver.Open("your_dsn_here"), &gorm.Config{})
    if err != nil {
        panic(err)
    }
    

内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:02:40