Beego: must have one register DataBase alias named `default`

Created on 10 Feb 2017  ·  9Comments  ·  Source: astaxie/beego

type User struct {
    Id          int     `orm:"pk;auto"`
    Age         int16
    Name        string
}

func init() {
    orm.RegisterDriver("mysql", orm.DRMySQL)

    orm.RegisterModel(new(User))

    orm.RegisterDataBase("default", "mysql", "root:[email protected]:3306/test?charset=utf8")
}

func main() {
    o := orm.NewOrm()
    o.Using("default") 

    user := new(User)
    user.Age = 30
    user.Name = "slene"

    fmt.Println(o.Insert(&user))
}

如上代码,执行提示:

exit status 2
[ORM]2017/02/10 17:01:35 register db Ping default, default addr for network '123.63.17.199:3306' unknown
must have one register DataBase alias named default

Most helpful comment

why do you guys use Chinese language here?? -_-

All 9 comments

user := new(User) is already *User. and you still use o.Insert(&user).

你没有处理 orm.RegisterDataBase 的error,这个错误消息不一定是没有定义default导致,而是因为orm.RegisterDataBase返回错误,没有注册成功,导致没有发现命名为 default的数据库注册

怎么解决的

我也遇到这样的问题,请问怎么解决的?

why do you guys use Chinese language here?? -_-

I experience same thing. I solved the problem by changing connection string to: "root:root@tcp(123.63.17.199:3306)/test?charset=utf8"

Hope can help you all

tcp(123.63.17.199:3306

thanx!

import (
"fmt"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)

err:=orm.RegisterDataBase(aliasName, driverName, dbUrl,maxIdle,maxConn)
if err != nil {
    panic(err)
}

注意导入和注意判断错误

import (
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)
must import _ "github.com/go-sql-driver/mysql"

Was this page helpful?
0 / 5 - 0 ratings