我正在研究自动克隆数据库的Golang脚本。我正在使用go-sql- driver,但是在文档中找不到创建新数据库的方法。与MySQL的连接需要以下URL方案:
user:password@tcp(localhost:3306)/database_name
但是该数据库尚不存在,我只想连接到服务器,然后创建一个新的数据库。
我怎样才能做到这一点?我必须使用其他驱动程序吗?
您可以完美地使用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教程和文档。