반응형
| 쉘 스크립트 설명
아래의 쉘 스크립트는 db별로 user와 db를 생성한 후에 sql문을 실행하는 쉘 스크립트입니다
case 별로 가능한 db명을 입력 받습니다. 가능한 db명은 쉘 스크립트 안에 Available로 나와있습니다.
처음에 입력받은 생성하고 싶은 user명으로 user, password, db가 동일하게 셋팅됩니다.
그 다음에 실행하고 싶은 sql문이 있는 위치를 입력하시고 sql 파일 명을 입력하시면 sql문이 실행됩니다.
쉘 스크립트가 끝나면 쉘 스크립트로 생성된 user명과 password db로 접속 한후
실행한 sql 결과를 확인하시면 됩니다.
현재는 mysql만 만들어져있는 상황입니다.
| 테스트 환경
1) Centos 버전
[root@localhost script]# rpm --query centos-release
centos-release-7-6.1810.2.el7.centos.x86_64
2) 설치한 db별 환경
* mysql
mysql –version
mysql Ver 14.14 Distrib 5.7.36
- 실행하고 싶은 sql
| all_db_user_cre.sh 내용
vi all_db_user_cre.sh
#!/bin/bash
echo "Available : mysql mariadb oracle tibero postgresql"
echo -n "what kind of database do you use? : "
read database
########################### mysql ###################################
case "$database" in 'mysql')
echo -n "do you wanna create user? y|n : "
read create
if [ $create = "y" ]; then
echo -n "Enter database user name : "
read user
echo -e "\033[47;31m Enter mysql root password \033[0m "
mysql_config_editor set --login-path=root --host=localhost --user=root --password
mysql --login-path=root -e "create user '$user'@'%' identified by '$user';" --connect-expired-password
mysql --login-path=root -e " grant all privileges on $user.* to $user@'%' identified by '$user';" --connect-expired-password
mysql --login-path=root -e "create database $user default character set utf8;" --connect-expired-password
mysql --login-path=root -e "FLUSH PRIVILEGES;" --connect-expired-password
echo -e "\033[47;31m user, pw, db명 모두 user명과 같습니다. \033[0m"
else
echo "user 생성하지 않습니다"
fi
echo -n "do you wanna excute sql query? y|n : "
read excute
if [ $excute = "y" ]; then
echo -n "Enter where is the sql? ex) /root/script : "
read where
echo -n "Enter sql name? ex)test.sql : "
read sql
echo -e "\033[47;31m Enter ↑ just created user password \033[0m "
#new user password save
mysql_config_editor set --login-path=$user --host=localhost --user=$user --password
#sql excute
mysql --login-path=$user $user < $where/$sql
#db table list
#mysql --login-path=$user -e "select * from information_schema.`TABLES` where TABLE_SCHEMA = '$user';" --connect-expired-password
else
echo "sql문 실행하지않습니다."
fi
;;
'mariadb')
echo -n "not read"
;;
############################# other dbs ################################
*)
echo "not ready" ;;
esac
~
참고하시라고 사진도 넣겠습니다.
| all_db_user_cre.sh shell script 실행해보기
실행전에 실행 할 수 있게 권한명령이 chmod로 실행권한을 줍니다.
| shell script 관련 문법 이나 참고사항 정리
추후 추가 하도록 하겠습니다 :)
반응형
'Linux > Shell script' 카테고리의 다른 글
부팅시 WAS(Tomcat) 자동 재시작 (0) | 2023.08.21 |
---|---|
[shell script] exception handling (예외 처리) (0) | 2021.10.28 |
[shell script] if문 비었을 때 에러가 발생되지 않게 하기 (0) | 2021.10.27 |
CLI, shell script에서 mysql query 실행 (5.5/5.6/5.7 버전별 정리) (0) | 2021.10.22 |
Centos7 mysql 5.7 install script (0) | 2021.10.21 |
댓글