動的にファブリックからMySQLデータベースを作成する方法
質問
動的にファブリックから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)
解決
の代わりに試してみてください。
run('echo "CREATE DATABASE %s;"|mysql --batch --user=%s --password=%s --host=%s' % (dataname, env.mysqluser, env.mysqlpassword, env.mysqlhost), pty=True)
他のヒント
のmysqladminを使用してこれを行うのより良い方法はあります:
run('mysqladmin -u %s -p%s create %s' % (user, password, dbname))
私は、コマンドラインを経由して、次の1つのライナーを使用する
mysql -uroot -prootpassword -e "CREATE DATABASE dbname";
キーが-eスイッチである。
あなたはデシベル/ユーザーの変数との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'";
所属していません StackOverflow