Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir) 위치를 변경해서 설치하는 방법에 대한 가이드입니다

개요

Ncloud(네이버 클라우드) 서버에 MySQL을 설치할 때 MySQL 데이터 저장 디렉토리(datadir) 위치를 변경해서 설치하는 방법을 정리해보겠습니다.

테스트 환경

  • 서버: Rocky Linux 8.8
  • DB: MySQL 8.0
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

MySQL 설치

아래와 같은 순서대로 MySQL 8.0 최신 버전을 설치합니다.

~# dnf -y upgrade-minimal
~# dnf -y install https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm
~# dnf module reset mysql
~# dnf module disable mysql
~# dnf -y install mysql-community-server
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

데이터 저장 디렉토리 생성

DB 데이터를 저장할 임의의 디렉토리를 생성합니다. /database/mysql 과 같이 생성하고 실제 저장되는 디렉토리는 mysql로 하겠습니다.

~# mkdir -p /database/mysql
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

디렉토리 소유권 변경

실제 저장되는 디렉토리인 [mysql]에 대한 소유권을 변경해야 하는데, 변경하기 전에 현재 상태를 확인해보면 아래와 같이 root:root로 되어 있는 것을 알 수 있습니다.

Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

아래 명령으로 mysql 디렉토리에 대한 소유권을 mysql:mysql로 변경합니다.

~# chown -R mysql:mysql /database/mysql/
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

환경 설정 변경

환경 설정 파일 my.cnf 파일을 열어서 [mysqld] 항목에 있는 [datadir], [socket] 두가지의 설정을 위에서 생성한 [/database/mysql/] 디렉토리로 변경합니다. 그리고 아래쪽에 로컬에서 접속하기 위한 [client] 항목에 대한 [socket] 설정도 추가합니다.

~# vim /etc/my.cnf

# mysqld용 설정 변경 (위에서 생성한 디렉토리)
[mysqld]
datadir=/database/mysql
socket=/database/mysql/mysql.sock

# 선택사항: CharacterSet, Collation 설정 추가
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
skip-character-set-client-handshake

# 로컬에서 접속하기 위한 client 용 설정 추가
[client]
socket=/database/mysql/mysql.sock

# 선택사항: CharacterSet 설정 추가
default-character-set=utf8mb4
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

MySQL 초기화

아래 명령어로 기본 데이터베이스 생성 등의 초기화 작업을 진행합니다. 이때 위에서 생성한 [/database/mysql/] 디렉토리에서 초기화가 진행됩니다.
초기화 한 후에 디렉토리를 살펴보면 아래와 같이 기본 데이터 베이스 등이 정상적으로 생성된 것을 확인할 수 있습니다.

~# mysqld --initialize-insecure --user=mysql
~# ls -al /database/mysql
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

MySQL 데몬 시작

초기화를 마쳤으면 MySQL 데몬을 시작합니다.

~# systemctl start mysqld
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

MySQL 보안 설정

[mysql_secure_installation]은 MySQL의 기본 보안을 설정하는 명령으로, 설정되는 항목은 다음과 같습니다.

  • root 계정 패스워드 설정
  • 원격 호스트에서 root 계정 접속 차단
  • 익명 계정 삭제
  • 테스트 DB 등 삭제
~# mysql_secure_installation
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

MySQL 접속

위에서 설정했던 비번으로 접속해보면 [8.0.35 MySQL Community Server]인 것을 확인할 수 있습니다.

[show databases] 명령으로 데이터베이스를 확인해보면 기본 데이터베이스 등 각종 시스템 데이터베이스가 모두 정상적으로 나타나는 것을 알 수 있습니다.

~# mysql -u root -p

mysql> show databases;
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

테스트 DB 생성

데이터베이스 생성도 문제 없이 잘되는지 확인해보기 위해 [testdb]를 생성하고, 확인해보겠습니다.

mysql> CREATE DATABASE testdb;
mysql> show databases;
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

디렉토리 확인

변경해서 설치한 디렉토리에도 [testdb]가 제대로 생성되었는지 확인해보니 아래 화면처럼 정상적으로 생성된 것을 알 수 있습니다.

~# ls -al /database/mysql
Ncloud(네이버 클라우드) 서버에 MySQL 데이터 저장 디렉토리(datadir)를 변경해서 설치하는 방법에 대한 가이드

참고 URL

  1. MySQL Yum Repository 다운로드 페이지
  2. Installing MySQL on Linux Using the MySQL Yum Repository
  3. Rocky Linux 서버에 MySQL 8.0 최신 버전 설치하는 방법

문서 업데이트 내역

날짜 내용
2023-12-20 문서 최초 생성
2023-12-21 CharacterSet, Collation 설정 내용 추가