mysql - 如何在 bash 脚本中授予 MySQL 权限?

标签 mysql linux bash shell sql-grant

我需要从 bash 脚本中授予数据库权限。一些参数采用变量形式,例如用户名和密码。 mysql shell 中的命令如下所示:

GRANT ALL ON *.* TO "$user"@localhost IDENTIFIED BY "$password";

...除了 $user$password 将被替换为它们的值。

有没有办法从 bash 脚本中执行这样的命令?

谢谢!

最佳答案

给你:)

#!/bin/bash

MYSQL=`which mysql`
EXPECTED_ARGS=3

Q1="USE $1;"
Q2="GRANT ALL ON *.* TO '$1'@'localhost' IDENTIFIED BY '$2';"
Q3="FLUSH PRIVILEGES;"
SQL="${Q1}${Q2}${Q3}"

if [ $# -ne $EXPECTED_ARGS ]
then
  echo "Usage: $0 dbname dbuser dbpass"
  exit $E_BADARGS
fi

$MYSQL -uroot -p -e "$SQL"

关于mysql - 如何在 bash 脚本中授予 MySQL 权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7528967/

相关文章:

linux - 您拥有 Archive::Tar 1.3901,但建议使用 1.50 或更高版本。请升级。问题

c# - 在 mono/Linux 下从命名管道读/写

linux - Crontab 以不同的方式运行 bash

perl - 如何以编程方式确定终端窗口的字符尺寸?

mysql - 在我的案例中,如何从第一个表中找到第二个表中丢失的行?

mysql - 如何在 mysql 数据库中存储具有 true/false 值的 xml 文件

php - 错误 : Unterminated quoted string during PHP exec

javascript - 将结果存储在变量中,就像 Java 在 TypeScript 中一样

linux - 如何检查磁盘分区以在 Linux 中的脚本中使用?

git - 子模块的别名