mysql -u root
를 입력하여 비밀번호 없이 접속할 수 있도록 작성sh install_mysql 8.0.32
#!
으로 시작해야 함/var/log/cloud-init-output.log
에서 확인 가능#!/usr/bin/env bash
# 압축파일 다운로드를 위해 wget 설치
sudo yum -y install wget
# libaio library 설치 (mysql dependency)
sudo yum -y install libaio
# command line argument의 수가 1이 아닌 경우 종료
if [ $# -ne 1 ]
then
echo "Usage: sh $0 version"
exit 1
fi
# command line argument로 입력받은 다운로드할 mysql의 버전
version=$1
# 다운로드할 mysql 파일 이름(CentOS 7, x86 64bit)
filename=mysql-$version-linux-glibc2.12-x86_64
# 압축파일을 다운로드 할 경로 지정
cd /home/centos
# 지정한 버전의 mysql 압축 파일을 다운로드하고 로그 저장
wget -a wget-log https://dev.mysql.com/get/Downloads/MySQL-${version%.*}/$filename.tar.xz
# 다운로드가 정상적으로 수행되었는지 확인
error=`tail -3 wget-log | grep ERROR`
rm wget-log
# 오류 발생 시 오류 메세지를 출력하고 종료
if [ -n "${error}" ]; then
echo "${error}"
exit 1
fi
# 압축 풀기
tar xvf $filename.tar.xz
# 압축 파일 제거
rm $filename.tar.xz
# 심볼릭 링크 지정
ln -s $filename mysql
# 로그 디렉토리 생성, 권한 설정
mkdir mysql/mysql-log
chown centos:centos mysql/mysql-log
chmod 750 mysql/mysql-log
# 로그 파일 생성, 권한 설정
touch mysql/mysql-log/mysqldb.log
chown centos:centos mysql/mysql-log/mysqldb.log
# config 설정 >> my.cnf에 저장
echo '[client]
port=3306
[mysqld]
basedir=/home/centos/mysql
datadir=/home/centos/mysql/data
user=centos
[mysqld_safe]
log-error=/home/centos/mysql/mysql-log/mysqldb.log
pid-file=/home/centos/mysql/mysql-log/mysqldb.pid' >> mysql/my.cnf
# PATH 설정
sudo sed -i '$aPATH="$PATH:/home/centos/mysql/bin"' /etc/profile
source /etc/profile
# mysql 초기화 설정(비밀번호가 없도록 설정)
mysql/bin/mysqld --defaults-file=/home/centos/mysql/my.cnf --initialize-insecure --user=centos
# mysql 서버 실행
mysql/bin/mysqld_safe --defaults-file=/home/centos/mysql/my.cnf --user=centos &
# 연결 기다리기
sleep 3
# mysql 실행
mysql -u root
인스턴스에서 직접 스크립트를 실행한 경우
...
NHN Cloud 사용자 스크립트를 사용한 경우
wget
에서 spider 옵션을 사용하면 다운로드를 시도하지 않고 링크가 잘못되었는지 확인 가능하다.mysqld_safe --skip-grant-tables
는 비밀번호 테이블을 아예 사용하지 않는다는 옵션이므로 보안에 매우 위험하다. 사용하지 않도록 한다.