문제

Fabric에서 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))

명령 줄을 통해 다음 하나의 라이너를 사용합니다

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'";
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top