[과제] NHN Cloud 인스턴스에서 MySQL 설치2 - 압축파일 이용

hwwwa·2023년 1월 16일
0

개발 환경

  • NHN Cloud
  • CentOS 7.9
  • MySQL 8.0

압축파일을 이용하여 MySQL 8.0 설치

설치 전 주의사항

  • yum이나 apt를 이용해 OS에 mysql을 이미 설치했던 적이 있다면, 바이너리 설치에 문제 발생 가능
    • 패키지 관리 시스템을 이용해 이전 mysql을 완전히 지워야 함
    • 부가적 파일, 이전 데이터 파일, my.cnf 같은 config 파일 삭제
  • mysql은 libaio 라이브러리 dependency가 있기 때문에 설치 필요
    • 설치하지 않으면 데이터 디렉토리 initialization 단계나 이후 서버 시작 단계에서 오류 발생
    yum search libaio	# search for info
    sudo yum install libaio	# install library

파일 다운로드

  • MySQL Developer Zone에서 Download MySQL Community Server 접속

    • 플랫폼에 맞는 패키지 선택 ➡️ Red Hat Enterprise Linux 7 (x86, 64-bit)
    • 설치할 리눅스 서버가 외부 인터넷이 가능한 환경이라면, wget으로 바로 내려받을 수 있음
      • 설치 파일을 서버에 upload 하는 과정이 생략되기 때문
  • wget을 이용하여 바이너리 버전 압축파일 다운로드

    # 현재 가장 최신 버전인 MySQL Community Server 8.0.31 다운로드
    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
  • 압축 풀기

    tar xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
  • 참고) 내부 디렉토리 목록

    DirectoryDirectory 내용
    binmysqld 서버, 클라이언트 및 유틸리티 프로그램
    docsInfo 형식의 MySQL 매뉴얼
    man유닉스 매뉴얼 페이지
    includeInclude (헤더) 파일
    libLibraries
    share데이터베이스 설치를 위한 Error messages, dictionary, SQL
    support-files기타 지원 파일
  • 다운로드 받은 압축파일 삭제

    rm mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
  • 디렉토리 이름 변경

    mv mysql-8.0.31-linux-glibc2.12-x86_64 mysql-8.0.31

심볼릭 링크 지정

ln -s mysql-8.0.31 mysql
  • 경로를 간단히하여 접근이 편리해짐
  • 패치 적용이나 업그레이드/다운그레이드가 편리

파일 생성 및 권한 설정

  • 로그 디렉토리, 파일을 생성하여 권한 설정

    cd mysql
    mkdir mysql/mysql-log
    chown 사용자명[:그룹명] mysql/mysql-log
    chmod 750 mysql/mysql-log
    
    cd mysql-log
    touch mysql/mysql-log/mysqldb.log
    chown 사용자명[:그룹명] mysql/mysql-log/mysqldb.log

configuration

  • my.cnf 파일 생성
    vi mysql/my.cnf
  • my.cnf 에 아래 내용 추가
    [client]
    port=3306
    socket=/home/centos/mysql/mysql.sock
    [mysqld] 
    basedir=/home/centos/mysql
    datadir=/home/centos/mysql/data 
    socket=/home/centos/mysql/mysql.sock
    user=centos
    [mysqld_safe] 
    log-error=/home/centos/mysql/mysql-log/mysqldb.log 
    pid-file=/home/centos/mysql/mysql-log/mysqldb.pid
  • 미설정 시 데이터파일, 로그, 소켓 등 모두 기본 path로 설치됨

DB 초기 가동

  • 생성한 my.cnf 설정 파일이 적용되도록 defaults-file 옵션 설정
    mysql/bin/mysqld --defaults-file=/home/centos/mysql/my.cnf --initialize --user=사용자명
    • 명령어 실행 시 로그 마지막에 뜨는 임시 비밀번호 저장해두기

DB Server Startup

/home/centos/mysql/bin/mysqld_safe --defaults-file=/home/centos/mysql/my.cnf --user=centos &
  • DB 서버 정상 실행 여부 확인
    ps -ef | grep mysqld
    • MySQL Server인 mysqld와 mysqld를 가동시킨 mysqld_safe가 잘 보이면 정상

PATH 설정

  • /etc/profile 마지막에 아래의 내용 등록
    export PATH="$PATH:/home/centos/mysql/bin"
  • 변경 사항 적용
    source /etc/profile
  • mysql/bin 경로를 등록해두면 full path 입력 필요 없이 mysql client나 mysql 관련 유틸리티를 쉽게 사용할 수 있음

MySQL 실행

# in '/home/centos/mysql'
bin/mysql -uroot -p'비밀번호' -S/home/centos/mysql/mysql.sock
  • 처음 실행 시에는 임시 비밀번호 입력
  • Socket 옵션 미지정시에는 기본 설정인 tmp 폴더로 지정되므로 config에 지정했던 경로를 옵션으로 주어야 정상 작동 됨
  • 실행 화면
  • 임시 비밀번호 변경
    mysql> alter user 'root'@'localhost' identified by '새로운비밀번호';

  • 참고) 실제 DB 설치시에도 바이너리 설치로 진행
    • my.cnf로 용도에 맞게 설정 가능
    • 폴더로 관리하므로 버전 업그레이드 용이
    • yum은 인터넷 연결이 반드시 필요하지만 DB 서버는 대부분 인터넷이 불가능하므로 설치 파일을 서버에 업로드하는 과정을 거쳐서 진행 필요

0개의 댓글