我正在尝试使用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()
Run Code Online (Sandbox Code Playgroud)
基于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
Run Code Online (Sandbox Code Playgroud)
我也试过了
db, err := sql.Open("mymysql", "tcp:"+dbHost, dbName+"/"+user+"/"+pass)
Run Code Online (Sandbox Code Playgroud)
而且它也没有用.整个语法看起来很神秘.
det*_*000 30
这些站点对于理解Go SQL非常有帮助:https://github.com/go-sql-driver/mysql/(即使您使用的是其他驱动程序)和http://go-database-sql.org/
有一些事情可能会有所帮助:
sql.Open()
DSN格式. db, err := sql.Open("mysql", "<username>:<pw>@tcp(<HOST>:<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()
小智 9
以下陈述对我有用:
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
db, err := sql.Open("mysql", "db_user:password@tcp(localhost:3306)/my_db")
Run Code Online (Sandbox Code Playgroud)
)