beego使用orm链接本地数据库时报错(Error 1046: No database selected)

CANaug · · 2342 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

最近在学习beego ORM进行数据库的读写操作,可是在注册数据库的时候总是出现问题。main.go代码如下,在官方的[快速入门](https://beego.me/docs/mvc/model/overview.md#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8)的基础上稍作了修改。 ``` package main import ( "fmt" "github.com/astaxie/beego/orm" _ "github.com/go-sql-driver/mysql" //_ "lorm/models" ) func init() { orm.RegisterDriver("mysql", orm.DRMySQL) orm.RegisterDataBase("default", "mysql", "root:$PASSWORD@/?charset=utf8") orm.RegisterModel(new(User)) err := orm.RunSyncdb("default", false, true) if err != nil { fmt.Println(err) //Error 1046: No database selected } } func main() { o := orm.NewOrm() o.Using("default") // orm.Debug = true dr := o.Driver() fmt.Println(dr.Name() == "default") // true fmt.Println(dr.Type() == orm.DRMySQL) // true user := User{Name: "slene"} // insert id, err := o.Insert(&user) fmt.Printf("ID: %d, ERR: %v\n", id, err) //ID: 0, ERR: Error 1046: No database selected // update user.Name = "astaxie" num, err := o.Update(&user) fmt.Printf("NUM: %d, ERR: %v\n", num, err) //NUM: 0, ERR: Error 1046: No database selected // read one u := User{Id: user.Id} err = o.Read(&u) fmt.Printf("ERR: %v\n", err) //ERR: Error 1046: No database selected // delete num, err = o.Delete(&u) fmt.Printf("NUM: %d, ERR: %v\n", num, err) //NUM: 0, ERR: Error 1046: No database selected } type User struct { Id int Name string `orm:"size(100)"` } ``` 我看过一些别人写的例子,感觉我的代码结构上应该没什么问题。不过在初始化的RegisterDataBase函数应该是出现了问题,我用mysqlshow命令查看数据库时也没有发现新建的数据库,希望有大牛可以指点一下。 还有一个问题就是如果把RegisterDataBase函数中的第三个参数改成‘root:$PASSWORD@/test?charset=utf8’的话会报错, ``` [ORM]2017/03/14 15:25:28 register db Ping `default`, Error 1049: Unknown database 'test' ``` 不过我看别人写的例子([1](http://blog.csdn.net/zistxym/article/details/21650149),[2](http://blog.csdn.net/z1134145881/article/details/52180550))里这么做就可以,想问一下是为什么。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2342 次点击  
加入收藏 微博
2 回复  |  直到 2017-03-14 08:16:01
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传