MySQL 유저 추가 및 삭제 스크립트



리눅스에서 계정 생성은 useradd 라는 명령어가 존재한다.


하지만 mysql은 따로 존재하지 않고 쿼리문으로 생성하거나 조금 번거롭게 추가해주어야 한다.

(create database, grant all privileges on ...)


그래서 쉘스크립트를 만들어서 사용하면 좀 더 편하게 생성 또는 삭제가 가능하다.



명령어가 어느 경로에서도 바로 사용할 수 있도록 우선 PATH 환경변수를 확인해보자.


[root@conoha bin]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin


/root/bin 폴더가 적당하겠다.


root 에 bin 폴더가 없다면 만들고 db_user_add, db_user_del 파일을 생성하자.

[root@conoha ~]# mkdir -m700 bin

[root@conoha ~]# touch /root/bin/db_user_add

[root@conoha ~]# touch /root/bin/db_user_del

[root@conoha ~]# chmod 700 /root/bin/db_user_add

[root@conoha ~]# chmod 700 /root/bin/db_user_del


#vi /root/bin/db_user_add 아래 내용으로 저장

#!/bin/sh


ROOT_ID='root'

ROOT_PW='루트암호'


USER_ID="$1"

USER_PW="$2"


if [ "$USER_ID" == "" ] ; then

echo "Input user id : "

read USER_ID

fi


if [ "$USER_PW" == "" ] ; then

echo "Input user password : "

read USER_PW

fi


mysql -u$ROOT_ID -p$ROOT_PW mysql -e "create database $USER_ID"

mysql -u$ROOT_ID -p$ROOT_PW mysql -e "grant all privileges on $USER_ID.* to '$USER_ID'@'localhost' identified by '$USER_PW'"

mysql -u$ROOT_ID -p$ROOT_PW mysql -e "grant all privileges on $USER_ID.* to '$USER_ID'@'%' identified by '$USER_PW'"

localhost 및 외부에서도 접근이 되는 권한이다.

외부에서 접속을 허용하지 않으려면 맨아래 부분을 막아주면 된다.


#vi /root/bin/db_user_del 아래 내용으로 저장

#!/bin/sh


ROOT_ID='root'

ROOT_PW='루트암호'


USER_ID="$1"


if [ "$USER_ID" == "" ] ; then

echo "Input user id : "

read USER_ID

fi


mysql -u$ROOT_ID -p$ROOT_PW mysql -e "drop user '$USER_ID'@'%'"

mysql -u$ROOT_ID -p$ROOT_PW mysql -e "drop user '$USER_ID'@'localhost'"

mysql -u$ROOT_ID -p$ROOT_PW mysql -e "drop database $USER_ID"

유저도 삭제하고 database 도 삭제하는 명령어다.

database 를 남기려면 맨 아랫줄은 막아주면 된다.


두개의 스크립트를 생성하였으니 이제 테스트 해보면 된다.


[root@conoha ~]# db_user_add testuser password123

[root@conoha ~]# db_user_del testuser


잘 되는지 확인하여야 한다.


스크립트에서 '루트암호' 는 mysql root 비밀번호를 적어주면 된다.



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,