gpt4 book ai didi

mysql - 如何打开远程mysql连接?

转载 作者:IT老高 更新时间:2023-10-28 13:05:31 26 4
gpt4 key购买 nike

我正在尝试使用 go 和 database/sql 包连接到远程 mysql 数据库。我发现 go/mysql 文档令人困惑。似乎没有单个示例如何连接到远程主机。就像每个人都会使用本地主机一样。到目前为止我有这个

   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, err := sql.Open("mymysql", "tcp:"+dbHost, dbName+"/"+user+"/"+pass) 

它也不起作用。整个语法看起来很神秘。

最佳答案

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

有几件事可能会有所帮助:

  1. sql.Open() 的连接字符串是DSN格式。 db, err := sql.Open("mysql", "<username>:<pw>@tcp(<HOST>:<port>)/<dbname>")为我的连接工作。检查 TCP 连接的括号使用情况。
  2. 您使用的驱动程序有命令 mysql.New()它可以使用您上面列出的格式打开连接:db := mysql.New(proto, "", addr, user, pass, dbname)
  3. 令人困惑的是,sql.Open实际上并没有打开连接,它只是创建了一个数据库资源。您可以通过运行 db.Ping() 来验证它是否正常工作。

关于mysql - 如何打开远程mysql连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23550453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com