4

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

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

...除此之外,$user$password被他们的价值观所取代。

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

谢谢!

4

2 回答 2

7

你去吧:)

#!/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"
于 2011-09-23T12:38:00.713 回答
0

如果我们不知道密码,我们可以通过以下方式获取:

cat /etc/psa/.psa.shadow

所以我们可以在没有提示密码的情况下进入mysql,例如:

mysql -uadmin -p`cat /etc/psa/.psa.shadow`
于 2017-10-18T08:54:40.233 回答