shell script로 인한 자동설치가 아니라 수동설치 방법을 원하시는 분들은 아래를 참고해주세요 :)
https://seul96.tistory.com/330
| 테스트 환경
1) Centos 버전
[root@localhost script]# rpm --query centos-release
centos-release-7-6.1810.2.el7.centos.x86_64
2) 설치할 mysql 버전
[root@localhost script]# mysql --version
mysql Ver 14.14 Distrib 5.7.36, for Linux (x86_64) using EditLine wrapper
아래의 쉘 스크립트를 실행하면 mysql 5.7이 설치되니 참고부탁드립니다.
마지막으로 root 권한으로 실행하였습니다
| centos7 mysql5.7 설치 script
* 쉘 스크립트 돌리기 전에 확인사항
shell script를 돌리기 전에 centos 7인지 확인해주세요 :)
또한 wget 명령어가 되는지(안되면 리눅스를 설치하셨을 때 최소설치 했을 수도 있으니 yum install -y wget으로 설치 먼저 부탁드립니다) 마지막으로 인터넷도 연결되어있어야 합니다.
* 쉘 스크립트 설명
아래의 쉘 스크립트는 먼저 mysql이 설치되어있는지 확인 합니다.mysql이 설치되어있으면 쉘 스크립트는 종료되고, 설치되어있지 않으면 사용자에게 mysql을 설치할 것인지 묻습니다.그 후 사용자가 mysql을 설치하겠다고(y) 답변을 하면 mysql 설치가 시작됩니다.mysql 5.6 버전 이후부터는 임시패스워드를 가지고 password를 바꾼 후에만 mysql을 사용할 수 있습니다.그렇기 때문에 이 스크립트에서는 먼저 본인의 mysql 임시 패스워드를 추출해줍니다.또한 바꾸고 싶은 비밀번호를 입력받아, 패스워드 변경까지 진행합니다.그렇기 때문에 이후에는 mysql -uroot -p바뀐_패스워드로 접속을 해주시면 되고,putty 특성상 복사하려고 마우스 오른쪽 버튼을 클릭해도 복사되므로 임시 패스워드를 복사 한후 붙여넣으실 때는 주의 부탁드립니다.더 자세한 사항은 아래 실행과정을 첨부했으니, 참고 부탁드립니다.
* cen7_my57_ins.sh
아래 쉘 스크립트 파일도 올려드립니다.
vi cen7_my57_ins.sh |
#!/bin/bash #mysql install_check mysql --version >> result.txt FILE="result.txt" #mysql install check if 1 if [ -s $FILE ]; then echo -e "\033[47;31m you already installed mysqld \033[0m " else echo -e "\033[47;31m you don't have mysql \033[0m " echo -n "do you wanna install mysql? y|n : " read install # 설치 하고 싶은지 물어보기 if 2 if [ $install = "y" ]; then #mysql install wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm --no-check-certificate #sucess check if 3 if [ $? -eq 0 ];then #mysql package install sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm #mysql server install yum -y install mysql-community-server #mysql auto boot & start systemctl start mysqld systemctl enable mysqld #temp mpassword #grep 'temporary password' /var/log/mysqld.log mpassword=$(awk '/temporary password/{print $11}' /var/log/mysqld.log) echo -e "\033[47;31m you must reset your mpassword \033[0m " echo -n "what do you wanna change to mysql repassword : " read repassword #mysql 5.6 version after echo -e "\033[47;31m "your mysql temp password:" $mpassword \033[0m " echo -e "\033[47;31m "Enter your mysql temp password" \033[0m " #mysql password & policy change mysql_config_editor set --login-path=root --host=localhost --user=root --password mysql --login-path=root -e "SET PASSWORD = PASSWORD('$mpassword');" --connect-expired-password mysql --login-path=root -e "uninstall plugin validate_password;" --connect-expired-password mysql --login-path=root -e "update mysql.user set authentication_string=password('$repassword') where user='root';" --connect-expired-password mysql --login-path=root -e "FLUSH PRIVILEGES;" --connect-expired-password else echo "mysql install failure! check you can to use wget etc..." exit 9 fi else echo "쉘 스크립트를 종료합니다" fi fi rm result.txt |
참고하시라고 사진 넣어드립니다.
| centos7 mysql 5.7 schell script 실행해보기
실행전에 실행 할 수 있게 권한명령이 chmod로 실행권한을 줍니다.
chmod +x cent7_my57_ins.sh
….생략
참고로 mysql이 이미 설치되어있으면 you already installed mysqld라는 문구와 함께 쉘 스크립트가 자동 종료됩니다.
| 쉘 스크립트 실행시 나타날 수 있는 에러 모음
1) ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 와 같은 에러가 나오면 임시 패스워드를 잘 입력했는지 확인하시고 mysql을 설치가 완료된 상태이니 출력된 임시 패스워드를 이용하여 비밀번호를 바꾸시기 바랍니다.
2) 그 밖에 최소 설치를 해서 wget이 없는 경우 yum -y install wget으로 wget을 설치해 주시기 바라며 제가 테스트 한 것은 centos7에 mysql5.7 버전이였습니다.
참고로 임시 패스워드를 바꾸는 방법은 아래와 같습니다.
| 쉘 스크립트 작성시 사용한 문법 및 참고사항
* mysql 임시패스워드 바꾸는 방법(참고용)
--mysql 접속
mysql -uroot -p임시비밀번호
--패스워드 입력
SET PASSWORD = PASSWORD('임시비밀번호');
--mysql 비밀번호 정책 삭제 => mysql 비밀번호를 정책에 맞게 어렵게 만드실 분들은 삭제 안하셔도 됩니다.
uninstall plugin validate_password;
--비밀번호 바꾸기
update mysql.user set authentication_string=password('바꾸고 싶은 비밀번호’) where user='root';"
--비밀번호 적용
FLUSH PRIVILEGES;"
--mysql 나가기
exit
--다시 접속
mysql -uroot -p바꾼비밀번호
참고 : https://m.blog.naver.com/dsz08082/221843561335
참고 : https://kim-dragon.tistory.com/48
그 밖의 사용한 문법들은 아래를 참고 해주세요 :)
차차 정리해서 올리도록 하겠습니다!
'Linux > Shell script' 카테고리의 다른 글
[shell script] if문 비었을 때 에러가 발생되지 않게 하기 (0) | 2021.10.27 |
---|---|
CLI, shell script에서 mysql query 실행 (5.5/5.6/5.7 버전별 정리) (0) | 2021.10.22 |
[sed - shell script] 동일 파일 반복 치환 후 파일 저장 (0) | 2021.09.28 |
sed 실전 응용 경로를 바꾸고 싶을 때, file로 저장방법까지 (0) | 2021.09.27 |
awk를 이용하여 조건에 맞는 값 출력하기 + | 이용하여 다중 명령 (0) | 2021.09.24 |
댓글