首頁 >後端開發 >Golang >為什麼我的Go程式無法連線到SQL Server?

為什麼我的Go程式無法連線到SQL Server?

Linda Hamilton
Linda Hamilton原創
2024-11-24 13:19:13437瀏覽

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

Go 使用SQL Server:無法成功連線

問題:

問題:
login failed for user 'sakhaloo'

使用Go 時用SQL Server驅動連線資料庫,訊息發生:
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 Management Studio 開啟資料庫失敗並出現錯誤:

原因:

  • 此問題源自於多種因素:
  • SQL Server 執行個體不是正確配置TCP 連線。
  • Go 程式正在嘗試使用 Windows 驗證,但未指定網域或使用者。

SQL Server 使用者沒有必要的權限。

    解決方案:
設定SQL Server 的TCP 連線:
  • 設定SQL Server 的TCP 連線:
    開啟SQL Server 設定管理員。
  • 展開網路設定 > MSSQLSERVER 的協定。
  • 啟用 TCP/IP。
    重新啟動 SQL Server 服務。
建立具有權限的SQL Server 使用者:
  • 使用SQL Management Studio 建立具有必要權限的SQL用戶。
  • 確保使用者有足夠的權限來建立和修改資料庫。

指定Go 程式中的SQL Server 使用者:
  • Go 程式中,指定連線字串中的SQL Server 使用者名稱和密碼。

    condb, errdb := sql.Open("mssql", "server=servernameorip;user>
    如果需要Windows 驗證,請將使用者名稱和密碼留空,
確保SQL Server 執行個體配置為Kerberos 驗證.受信任Windows 的更新解決方案驗證:在Windows上,如果使用者 ID 為空或缺失,則使用單一登入(可信任連線)。 要使用可信任Windows 驗證,請在 Go 程式中確保以下內容:

以上是為什麼我的Go程式無法連線到SQL Server?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn