2011-09-23 3 views
3

bash 스크립트에서 데이터베이스에 권한을 부여해야합니다. 일부 매개 변수는 변수의 형태로되어 있습니다 (예 : 사용자 이름과 암호). MySQL의 쉘 명령은 다음과 같이 보일 것이다 : 그 $user$password 제외bash 스크립트에서 MySQL 권한을 부여하는 방법은 무엇입니까?

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

... 자신의 값으로 대체 될 것이다.

bash 스크립트에서 이러한 명령을 수행 할 수있는 방법이 있습니까?

감사합니다. 이

답변

4

당신은

#!/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" 
+0

죄송하지만 그건 내 질문에 대한 답변이 아닙니다. – Dunaril

+0

@Dunaril 왜 이것이 귀하의 질문에 대한 답변이 아니라고 말씀하십니까? 언뜻보기에 이것이 작동 할 것입니다. – Icarus

+0

@ 이카루스 대답이 편집되었습니다. – Dunaril

0

: 이동 우리는 암호를 알고하지는 경우 우리는 그것을 얻을 수 있습니다 :

:

cat /etc/psa/.psa.shadow 

그래서 우리는 같은 프롬프트 암호없이 MySQL을로 얻을 수 있습니다

mysql -uadmin -p`cat /etc/psa/.psa.shadow` 
관련 문제