我试图使用go和
database / sql包连接到远程
mysql数据库.
我发现go / MysqL文档混乱.似乎没有一个例子如何连接到远程主机.像大家一样会使用localhost.
到目前为止我有这个
我发现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 sql:
https://github.com/go-sql-driver/mysql/(即使使用不同的驱动程序)和
http://go-database-sql.org/也非常有帮助
原文链接:https://www.f2er.com/go/186943.html有几件事情可能有帮助:
> 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()来验证它是否正常工作