在bash脚本中检查Mysql用户是否存在

5

我正在尝试检查MYSQL用户是否存在。目前为止,我已经做到了这一点。但是我无法从输出中捕获该答案。

 #!/bin/bash
echo -e "What is the MYSQL username called"
    read DBUSER
    if [ -z "$DBUSER" ]
    then
    exit

    mysql -uUSER -pPASS -e "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = '$DBUSER')";

    if 
    yes
    do this
    else
    do this

我得到的输出如下:

+-----------------------------------------------------+
| EXISTS(SELECT 1 FROM mysql.user WHERE user = 'bob') |
+-----------------------------------------------------+
|                                                   1 |
+-----------------------------------------------------+

可以有人帮忙吗?

2个回答

10
非常感谢您的帮助。这是最终运行结果。
它需要 -sse。
RESULT_VARIABLE="$(mysql -uUSER -pPASS -sse "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = '$DBUSER')")"

if [ "$RESULT_VARIABLE" = 1 ]; then
echo "TRUE"
else
  echo "FALSE"
fi

相当显然,但是只是为了确认一下...这个代码在我使用 shell_exec 的时候可以使用。--> $is_mysql_user = shell_exec('mysql --defaults-extra-file=MYPATHTOSTOREDCREDENTIALS -sse "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = \'' . $user_name . '\')"'); - aequalsb

3
将结果赋值给一个变量的方法如下所示:
RESULT_VARIABLE="$(mysql -uUSER -pPASS -se "SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = '$DBUSER')")"

顺便提一下,您也可以在MySQL中为列设置别名。

SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = '$DBUSER') AS does_it_exist

非常感谢。我接下来尝试获取结果。这给了我一个错误。如果 [ $RESULT_VARIABLE = "1" ]; then echo "true" else echo "再试一次" fi - Gary

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接