我可以使用环境变量以root用户身份连接到控制台:
mysql -u root -p${MYSQL_ROOT_PASSWORD}
我希望能够在语句中使用其他环境变量
CREATE USER ${MYSQL_USER} IDENTIFIED BY ${MYSQL_USER_PASSWORD};
显然不起作用(或者我为什么要问)。有什么方法可以在控制台中使用环境变量?
答案 0 :(得分:1)
我认为无法通过MySQL查询访问环境变量。但是您可以在外壳中构造MySQL查询并替换变量。
mysql -e "CREATE USER '{$MYSQL_USER}' IDENTIFIED BY '${MYSQL_USER_PASSWORD}'"
在将其传递给mysql
命令之前,shell会将变量替换为字符串。对于更长的查询,您可以使用here-doc:
mysql <<EOF
CREATE USER '{$MYSQL_USER}'
IDENTIFIED BY '${MYSQL_USER_PASSWORD}'
EOF