2017-02-11 111 views
1

我已經使用this教程創建並連接到了Linux上的sql服務器。如何在Linux中使用GO連接到mssql數據庫

我正在使用golang和this驅動程序。 (https://github.com/denisenkom/go-mssqldb

我在使用golang連接到數據庫時遇到問題。我已經將用戶指定爲SA和密碼。我也寫在終端「主機名」,並得到主機名xxx。當我使用該信息進行連接時,出現500錯誤。

conn, err := sql.Open("mssql", "server=xxx; id=SA; password=mypass; database=testdb) 

這是否正確?我是新手,所以也許我錯過了一些明顯的東西?

+0

你能夠從sqlcmd atleast連接嗎? – TheGameiswar

+0

@TheGameiswar是的,我是 – Samu

+0

你能顯示錯誤日誌內容嗎? 'cat/var/opt/mssql/log/errorlog',如果連接經過,您可能會看到一個條目。 –

回答

0

Github example你可以看到它是如何工作的。 您可以按照這些步驟:

var (
    server string = "localhost" // for example 
    user  string = "userdb" // Database user 
    password string = "userpwd" // User Password 
    port  int = 1433  // Database port 
) 

connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d", server, user, password, port) 
conn, err := sql.Open("mssql", connString) 

// Test if the connection is OK or not 
if err != nil { 
    panic("Cannot connect to database") 
} else { 
    fmt.Println("Connected!") 

    } 
// Don't forget to close the connection to your database 
defer conn.Close() 
0

如果你有麻煩創建一個連接字符串,那麼你可以隨時讓你的庫來格式化您的連接字符串爲您服務。

import (
    "database/sql" 
    _ "github.com/go-sql-driver/mysql" 
    // OTHER STUFF 
) 

func main() { 
    cfg := mysql.Config{ 
     User: "username", 
     Passwd: "password", 
     Net: "tcp", 
     Addr: "127.0.0.1:3306", 
     DBName: "database_name", 
    } 

    db, err := sql.Open("mysql", cfg.FormatDSN()) 
    check(err) 

    // DO SOMETHING WITH db 
} 

func check(e error) { 
    if e != nil { 
     panic(e) 
    } 
} 
相關問題