如何在 MySQL 控制台中使用环境变量

Whi*_*uit 5 mysql

我可以使用环境变量以 root 身份连接到控制台:

mysql -u root -p${MYSQL_ROOT_PASSWORD}
Run Code Online (Sandbox Code Playgroud)

我希望能够在语句中使用不同的环境变量

CREATE USER ${MYSQL_USER} IDENTIFIED BY ${MYSQL_USER_PASSWORD};
Run Code Online (Sandbox Code Playgroud)

这显然不起作用(或者我为什么要问)。有什么办法可以在控制台中使用环境变量吗?

Bar*_*mar 5

我认为没有任何方法可以从 MySQL 查询访问环境变量。但是您可以在 shell 中构造 MySQL 查询和替换变量。

mysql -e "CREATE USER '{$MYSQL_USER}' IDENTIFIED BY '${MYSQL_USER_PASSWORD}'"
Run Code Online (Sandbox Code Playgroud)

在将变量传递给mysql命令之前,shell 会将变量替换为字符串。对于更长的查询,您可以使用 here-doc:

mysql <<EOF
CREATE USER '{$MYSQL_USER}' 
IDENTIFIED BY '${MYSQL_USER_PASSWORD}'
EOF
Run Code Online (Sandbox Code Playgroud)