0

我需要使用 Go 连接到远程 MySql 服务器。我正在使用以下代码通过 gorm 连接到 MySql。

 type DBController struct {
    DB gorm.DB
}

func (dc *DBController) InitDB() {
    var err error

  host := v.GetString("db.mysql.host")
  port := v.GetString("db.mysql.port")

  user := v.GetString("db.mysql.user")
  pass := v.GetString("db.mysql.pass")

  db := v.GetString("db.mysql.db")

  //user:password@tcp(localhost:5555)/dbname
  conn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", user, pass, host, port, db)
  //conn := v.GetString($user+":"$pass+"@tcp("+$host+":"+$port+")/"+$db)
  log.Debug(conn)

    dc.DB, err = gorm.Open("mysql", conn)
    if err != nil {
        log.Fatalf("Error when connect database, the error is '%v'", err)
    }
    dc.DB.LogMode(true)
}

func (dc *DBController) GetDB() gorm.DB {
  return dc.DB
}

当我运行 Go 服务器时,出现以下错误

No configuration file loaded - using defaults
:@tcp(:)/
Error when connect database, the error is 'dial tcp: unknown port tcp/'
exit status 1

如何修复此错误?

4

1 回答 1

0

我猜“v”是你的配置变量……它不包含数据,这不是 Gorm 的问题,这是因为 dc.Open() 没有接收到配置值。

如果您尝试使用静态数据运行它,它应该可以工作。

于 2016-03-15T00:20:35.353 回答