首页  >  文章  >  后端开发  >  为什么我的Go程序无法连接到SQL Server?

为什么我的Go程序无法连接到SQL Server?

Linda Hamilton
Linda Hamilton原创
2024-11-24 13:19:13383浏览

Why Can't My Go Program Connect to SQL Server?

Go 使用 SQL Server:无法成功连接

问题:

使用 Go 时用SQL Server驱动连接数据库,报错发生:

login failed for user 'sakhaloo'

此外,尝试使用 SQL Server Management Studio 打开数据库失败并出现错误:

Error:233: 
A connection was successfully established with the server, but then an
error occurred during the login process. (provider: Shared Memory
Provider, error: 0-no process is on the other end of the
pipe.)(Microsoft SQL Server,)

原因:

该问题源于多种因素:

  • SQL Server 实例不是正确配置 TCP 连接。
  • Go 程序正在尝试使用 Windows 身份验证,但未指定域或用户。
  • SQL Server 用户没有必要的权限。

解决方案:

  1. 配置SQL Server 的 TCP 连接:
  • 打开 SQL Server 配置管理器。
  • 展开网络配置 > MSSQLSERVER 的协议。
  • 启用 TCP/IP。
  • 重新启动 SQL Server 服务。
  1. 创建具有权限的 SQL Server 用户:
  • 使用 SQL Server Management Studio 创建具有必要权限的 SQL Server 用户。
  • 确保用户有足够的权限来创建和修改数据库。
  1. 指定Go 程序中的 SQL Server 用户:
  • Go 程序中,指定连接字符串中的 SQL Server 用户名和密码。
  • 如果需要 Windows 身份验证,请将用户名和密码留空,但是确保 SQL Server 实例配置为 Kerberos 身份验证.

受信任 Windows 的更新解决方案身份验证:

  • 在 Windows 上,如果用户 ID 为空或缺失,则使用单点登录(可信连接)。
  • 要使用可信Windows 身份验证,请在 Go 程序中确保以下内容:

    condb, errdb := sql.Open("mssql", "server=servernameorip;user>

以上是为什么我的Go程序无法连接到SQL Server?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn