在像这样的简单脚本中:
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命令无缝执行?
答案 0 :(得分:4)
尝试在〜/ .my.cnf
中添加密码[client]
user = root
password = XXXXXXXX
退房:
答案 1 :(得分:0)
指定 --password 参数
mysql -u root --password=my_mysql_pass db_name
使用 bash 变量更安全
mysql -u root --password=$MYSQL_PASS db_name