如何用GO连接linux中的mssql数据库

时间:2017-02-11 16:54:52

标签: sql sql-server linux go

我使用this教程创建并连接到Linux上的sql server。

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

我在使用golang连接数据库时遇到问题。我已将用户指定为SA和密码。我还在终端“hostname”中写了并获得了主机名xxx。当我使用该信息进行连接时,我收到500错误。

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

这看起来是否正确?我是新手,所以也许我错过了一些明显的东西?

3 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

import "database/sql"
import _ "github.com/go-sql-driver/mysql"

db, err := sql.Open("mysql", "user:password@/dbname")

就这么简单,您可以连接到您的数据库 您应该在代码中添加驱动程序作为未使用的包,然后它具有连接到DB的参数URI。 你可以查询这个链接打击 https://golang.org/pkg/database/sql/#example_DB_Query

答案 2 :(得分: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)
    }
}