我正在研究自动克隆数据库的 Golang 脚本。我正在使用 go-sql-driver,但在文档中找不到创建新数据库的方法。连接到 MySQL 需要一个 URL 方案,如:user:password@tcp(localhost:3306)/database_name但是数据库还不存在,我只想连接到服务器然后创建一个新的。我怎样才能做到这一点?我必须使用另一个驱动程序?
3 回答
互换的青春
TA贡献1797条经验 获得超6个赞
如果你想在不存在的情况下创建一个新的数据库,并直接在你的程序中使用它,注意database/sql维护一个连接池。
因此打开的数据库连接,最好应该包含数据库名称。我已经看到手动使用后"Error 1046: No database selected"何时database/sql打开新连接db.Exec("USE "+name)。
func createAndOpen(name string) *sql.DB {
db, err := sql.Open("mysql", "admin:admin@tcp(127.0.0.1:3306)/")
if err != nil {
panic(err)
}
defer db.Close()
_,err = db.Exec("CREATE DATABASE IF NOT EXISTS "+name)
if err != nil {
panic(err)
}
db.Close()
db, err = sql.Open("mysql", "admin:admin@tcp(127.0.0.1:3306)/" + name)
if err != nil {
panic(err)
}
defer db.Close()
return db
}
- 3 回答
- 0 关注
- 236 浏览
添加回答
举报
0/150
提交
取消