4

bash スクリプト内からデータベースに権限を付与する必要があります。ユーザー名やパスワードなど、一部のパラメーターは変数の形式になっています。mysql シェルのコマンドは次のようになります。

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 に答える