Bash 스크립트를 사용하여 Centos에 MYSQL 5.7 설치

Bash 스크립트를 사용하여 Centos에 MYSQL 5.7 설치

저는 Centos 7을 사용하고 있으며 vagrant 설정 중에 mysql 5.7을 설치하는 스크립트를 작성하려고 합니다. 루트 비밀번호를 수동으로 변경하는 방법을 알고 있는데 스크립트에 어떻게 작성하나요?

나는 이미 이것을 가지고 있습니다:

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum -y localinstall mysql57-community-release-el7-7.noarch.rpm
yum -y install mysql-community-server
service mysqld start

제가 아는 수동 작업은 다음과 같습니다. 임시 비밀번호 받기

grep 'temporary' /var/log/mysqld.log

그런 다음 메시지가 표시되면 입력하고 pass를 입력했습니다.

mysql -u root -p
Enter Passwword:

그런 다음 패스를 변경하거나 mysql_secure_installation을 실행하십시오.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Newhakase-labs123@';
flush privileges;

답변1

Google Cloud의 CentOS 7.5 인스턴스에 대해 이러한 명령을 테스트했습니다. 스크립트 실행이 완료되면 새 비밀번호를 사용하여 데이터베이스 서버에 로그인할 수 있습니다.

#!/bin/bash
# Description: Set up MySQL Community Release 5.7

# Get the repo RPM and install it.
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm 
yum -y install ./mysql57-community-release-el7-7.noarch.rpm 

# Install the server and start it
yum -y install mysql-community-server 
systemctl start mysqld 

# Get the temporary password
temp_password=$(grep password /var/log/mysqld.log | awk '{print $NF}')

# Set up a batch file with the SQL commands
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Newhakase-labs123@'; flush privileges;" > reset_pass.sql

# Log in to the server with the temporary password, and pass the SQL file to it.
mysql -u root --password="$temp_password" --connect-expired-password < reset_pass.sql

관련 정보