避免第二次询问mysql root密码(bash)

时间:2014-10-16 23:39:35

标签: mysql bash shell

在像这样的简单脚本中:

set -x
# Check if db exists, if not we make it, make user, give privileges
if ! mysql -u root -p -e "use $db" 2>/dev/null; then

    c1="CREATE DATABASE $db"
    c2="GRANT ALL PRIVILEGES ON ${db}.* to '$username'@'localhost' IDENTIFIED BY '$password'"
    c3="FLUSH PRIVILEGES"

    mysql -u root -p -e "$c1; $c2; $c3"
else
    echo 'DATABASE ExISTS, ABORTING'; exit $DB_EXISTS
fi

我每次都会被问到bash看到mysql命令,以获取我的root凭据。 有没有办法避免这种情况,所以一旦输入root密码,所有 额外的mysql命令无缝执行?

2 个答案:

答案 0 :(得分:4)

尝试在〜/ .my.cnf

中添加密码
[client]
user = root
password = XXXXXXXX

退房:

How to execute a MySQL command from a shell script?

答案 1 :(得分:0)

指定 --password 参数

mysql -u root --password=my_mysql_pass db_name

使用 bash 变量更安全

mysql -u root --password=$MYSQL_PASS db_name