微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Golang如何打开远程mysql连接?

我试图使用go和 database / sql包连接到远程 mysql数据库.
我发现go / MysqL文档混乱.似乎没有一个例子如何连接到远程主机.像大家一样会使用localhost.
到目前为止我有这个
import (
        "database/sql"
        _ "github.com/ziutek/myMysqL/godrv"    
        db,err := sql.Open("myMysqL","tcp:"+dbHost*dbname+"/"+user+"/"+pass)
        defer db.Close()

根据https://github.com/ziutek/mymysql的文档

[PROTOCOL_SPECFIIC*]dbnAME/USER/PASSWD
//
// where protocol specific part may be empty (this means connection to
// local server using default protocol). Currently possible forms:
//   dbnAME/USER/PASSWD
//   unix:SOCKPATH*dbnAME/USER/PASSWD
//   unix:SOCKPATH,OPTIONS*dbnAME/USER/PASSWD
//   tcp:ADDR*dbnAME/USER/PASSWD
//   tcp:ADDR,OPTIONS*dbnAME/USER/PASSWD

我也试过

db,"tcp:"+dbHost,dbname+"/"+user+"/"+pass)

它也不工作.整个句法看起来很神秘.

这些网站对于理解Go sqlhttps://github.com/go-sql-driver/mysql/(即使使用不同的驱动程序)和 http://go-database-sql.org/也非常有帮助

有几件事情可能有帮助:

> sql.open()的连接字符串为DSN格式. db,err:= sql.Open(“MysqL”,“< username>:< pw> @tcp(&HOMT>:< port>)/< dbname>”)适用于我的连接.检查括号中是否使用TCP连接.
>您正在使用的驱动程序具有命令MysqL.New(),可以使用上面列出的格式打开连接:db:= MysqL.New(proto,“”,addr,user,pass,dbname)(请参阅https://github.com/ziutek/mymysql/blob/master/examples/simple.go )>令人困惑的是,sql.Open实际上并不打开一个连接,它只是创建一个数据库资源.您可以通过运行db.Ping()来验证它是否正常工作

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐