Você pode usar perfeitamente o driver go-sql. No entanto, você precisa usar um usuário mysql que tenha os direitos de acesso apropriados para criar novos bancos de dados.
Aqui está um exemplo:
func create(name string) {
db, err := sql.Open("mysql", "admin:[email protected](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)
}
}
Observe que o nome do banco de dados não é fornecido na cadeia de conexão. Nós apenas criamos o banco de dados após a conexão (comando CREATE DATABASE), e trocamos a conexão para usá-lo (comando USE).
Nota:os caras do VividCortex mantêm um bom tutorial e documentação de banco de dados/sql em http://go- database-sql.org/index.html