一尘不染

如何使用go-sql-driver创建新的MySQL数据库

go

我正在研究自动克隆数据库的Golang脚本。我正在使用go-sql-
driver,但是在文档中找不到创建新数据库的方法。与MySQL的连接需要以下URL方案:

user:password@tcp(localhost:3306)/database_name

但是该数据库尚不存在,我只想连接到服务器,然后创建一个新的数据库。

我怎样才能做到这一点?我必须使用其他驱动程序吗?


阅读 289

收藏
2020-07-02

共1个答案

一尘不染

您可以完美地使用go-sql-driver。但是,您需要使用具有适当访问权限的mysql用户来创建新数据库。

这是一个例子:

func create(name string) {

   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 "+name)
   if err != nil {
       panic(err)
   }

   _,err = db.Exec("USE "+name)
   if err != nil {
       panic(err)
   }

   _,err = db.Exec("CREATE TABLE example ( id integer, data varchar(32) )")
   if err != nil {
       panic(err)
   }
}

请注意,连接字符串中未提供数据库名称。我们只是在连接后创建数据库(CREATE DATABASE命令),然后切换连接以使用它(USE命令)。

注意:VividCortex团队在http://go-database-sql.org/index.html上维护了不错的数据库/ sql教程和文档。

2020-07-02