我试图使用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/也非常有帮助
有几件事情可能有帮助:
> 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 举报,一经查实,本站将立刻删除。