2017-02-11 98 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) 
    } 
} 
相关问题