본문 바로가기
Linux/Shell script

Centos7 mysql 5.7 install script

by 개폰지밥 2021. 10. 21.
반응형

shell script로 인한 자동설치가 아니라 수동설치 방법을 원하시는 분들은 아래를 참고해주세요 :)

https://seul96.tistory.com/330

 

centos7 mysql5.7 설치 및 에러 해결 초기 패스워드 및 변경 방법

| mysql 설치 1. mysql 설치 확인 및 버전확인 l 설치 전 mysql --version mysql이 설치 되어있으면 version 정보가 나타납니다. 2. mysql 설치 centos6때는 yum -y install mysql* 라는 명령어로 설치가 되었으..

seul96.tistory.com

 

| 테스트 환경

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

아래 쉘 스크립트 파일도 올려드립니다.

cen7_my57_ins.sh
0.00MB

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을 설치해 주시기 바라며 제가 테스트 한 것은 centos7mysql5.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

 

그 밖의 사용한 문법들은 아래를 참고 해주세요 :)

차차 정리해서 올리도록 하겠습니다!

반응형

댓글