无法连接到Go中的远程MySql

时间:2016-03-05 12:48:49

标签: mysql database go tcp go-gorm

我需要使用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

如何修复此错误?

1 个答案:

答案 0 :(得分:0)

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

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