9

是否可以从结构动态创建 mysql 数据库。

这似乎卡在密码提示中

run('mysql -u %s -p %s -h %s  ' % (env.mysqluser, env.mysqlpassword, env.mysqlhost), pty=True)
run('CREATE DATABASE %s; ' % (dataname), pty=True)
run('exit', pty=True)
4

3 回答 3

21

使用 mysqladmin 有更好的方法:

run('mysqladmin -u %s -p%s create %s' % (user, password, dbname))
于 2011-08-01T17:33:13.453 回答
5

试试吧

run('echo "CREATE DATABASE %s;"|mysql --batch --user=%s --password=%s --host=%s' % (dataname, env.mysqluser, env.mysqlpassword, env.mysqlhost), pty=True)
于 2009-12-12T13:55:46.027 回答
0

我通过命令行使用以下一个衬垫

mysql -uroot -prootpassword -e "CREATE DATABASE dbname";

关键是 -e 开关。
如果您想在 db/user/pass 中使用带有变量的 bash 脚本并将其作为 ./myscript 运行,那么

#!/bin/bash
DB="mydb"
USER="user1"
PASS="pass_bla"

mysql -uroot -prootpassword -e "CREATE DATABASE $DB CHARACTER SET utf8 COLLATE utf8_general_ci";
mysql -uroot -prootpassword -e "CREATE USER $USER@'127.0.0.1' IDENTIFIED BY '$PASS'";
mysql -uroot -prootpassword -e "GRANT SELECT, INSERT, UPDATE ON $DB.* TO '$USER'@'127.0.0.1'";
于 2017-04-08T21:23:39.073 回答