개요

Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법을 정리해보겠습니다. 설치하면서 데이터 저장 디렉토리(datadir) 위치를 별도의 디렉토리로 변경해서 설치하는 방법입니다.

설치 환경

  • Rocky Linux: 8.10
  • MariaDB: 10.11
  • 데이터 저장 디렉토리(datadir) 위치 변경
  • 로그(log_error) 저장 디렉토리 위치 변경

서버 준비

2024-07-29 현재 Ncloud에서 제공하는 Rocky Linux 서버 이미지의 최신 버전은 Rocky Linux 8.10 입니다.

Ncloud(네이버 클라우드)에서 제공하기 시작한 록키 리눅스 소개

패키지 업데이트

우선 패키지 관련한 보안-버그 수정 사항만 최소한으로 업데이트를 해보겠습니다.

  dnf -y upgrade-minimal
  
Ncloud(네이버 클라우드)에서 제공하기 시작한 록키 리눅스 소개

MariaDB 설치

버전 확인

우선, Ncloud Rocky Linux 8.10에서 지원하는 MariaDB 버전을 확인합니다. 리스트를 살펴보면 10.3이 기본 버전이고 10.11 버전이 포함되어 있는 것을 알 수 있습니다. 즉, 별도로 리포지토리를 생성해서 설치할 필요가 없이 바로 설치하면 된다는 것입니다.

  dnf module list mariadb
  
  • mariadb 10.3 (default)
  • mariadb 10.5
  • mariadb 10.11
Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

버전 활성화 정보 초기화

최신 버전인 10.11버전을 설치하기 위해 버전 활성화 정보를 초기화 합니다. 현재 활성화된 버전이 없을 경우에는 아래처럼 아무 변화없이 완료됩니다.

  dnf module reset mariadb
  
Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

10.11 버전 활성화

Rocky Linux 8.10에 포함된 최신 버전인 10.11 버전을 활성화합니다.

  dnf module enable mariadb:10.11
  
Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

설치

설치는 [mariadb-server]로 하게 됩니다.

  dnf -y install mariadb-server
  
Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

데이터 저장 디렉토리 생성

DB 데이터와 로그를 저장할 임의의 디렉토리를 생성합니다. /data/db/mariadb 과 같이 생성하겠습니다.
각 디렉토리에 대한 권한 설정은 아래쪽에서 진행하겠습니다.

  mkdir -p /data/db/mariadb/
mkdir -p /data/log/mariadb/
  
Ncloud(네이버 클라우드) Rocky Linux 8 서버에 MariaDB 10.11 버전을 설치하는 방법

환경 설정 변경

환경 설정 파일을 열어서 몇가지 설정을 변경하겠습니다.

환경 설정 파일 위치

환경 설정 파일의 위치는 [/etc/my.cnf.d/] 디렉토리에 있고, 이 중에서 [mariadb-server.cnf] 파일과 [client.cnf] 파일을 수정하겠습니다.

Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

mariadb-server.cnf

  vim /etc/my.cnf.d/mariadb-server.cnf
  
  
# mariadb용 설정 변경 (위에서 생성한 디렉토리)
[mariadb]
datadir=/data/db/mariadb

# 선택사항: 로그 파일 설정
log_error=/data/log/mariadb/mariadb-err.log

slow_query_log
slow_query_log_file=/data/log/mariadb/mariadb-slow-query.log

# 선택사항: CharacterSet, Collation 설정 추가
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
skip-character-set-client-handshake
  
Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

client.cnf

  vim /etc/my.cnf.d/client.cnf
  
  [client-mariadb]

# 선택사항: CharacterSet 설정 추가
default-character-set=utf8mb4
  
Ncloud(네이버 클라우드) Rocky Linux 8 서버에 MariaDB 10.11 버전을 설치하는 방법

MariaDB 초기화

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

  mariadb-install-db
ls -al /data/db/mariadb/
  
Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

디렉토리 소유권 변경

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

Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

아래 명령으로 데이터와 로그 디렉토리에 대한 소유권을 mysql:mysql로 변경합니다. (mariadb가 아니고 mysql인 것에 주의해야 합니다.)

  chown -R mysql:mysql /data/db/mariadb/
chown -R mysql:mysql /data/log/mariadb/
ls -al /data/db/mariadb/
  
Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

MariaDB 데몬 시작

초기화와 소유권 변경까지 마쳤으면 MariaDB 데몬을 시작하고, 서버 재시작시에도 자동으로 실행되도록 설정합니다.

  systemctl enable mariadb
systemctl start mariadb
systemctl status mariadb
  
Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

MariaDB 보안 설정

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

  • root 계정 패스워드 변경
  • 원격 호스트에서 root 계정 접속 차단
  • 익명 계정 삭제
  • 테스트 DB 등 삭제
  mariadb-secure-installation
  

인증, 패스워드 관련 설정

MariaDB 10.4 버전부터는 로그인 인증에서 Unix Socket Authenticaton이 기본으로 설정되어 있으므로 Y, N 어떤 것을 선택해도 차이는 없고, 패스워드는 변경하지 않고 진행합니다. Unix Socket Authenticaton이 아닌 기존의 Password 방식으로 변경하려면 별도의 작업을 해야 합니다.

  Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
 ... Success!

Change the root password? [Y/n] n
 ... skipping.
  
Ncloud(네이버 클라우드) Rocky Linux 8 서버에 MariaDB 10.11 버전을 설치하는 방법

기타 보안 설정

그 다음 보안 설정에서는 [익명 계정 삭제], [root 원격 접근 차단], [임시 데이터베이스 삭제]를 하도록 모두 Y를 선택합니다.

  Remove anonymous users? [Y/n] y
 ... Success!

Disallow root login remotely? [Y/n] y
 ... Success!

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] y
 ... Success!
  
Ncloud(네이버 클라우드) Rocky Linux 8 서버에 MariaDB 10.11 버전을 설치하는 방법

MariaDB 접속

이제 DB에 접속해보면 [10.11.6] 버전인 것을 확인할 수 있습니다.

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

  mariadb

MariaDB> show databases;
  
Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

mysql_native_password 방식

mysql_native_password 방식으로 설정했을 경우 아래와 같이 접속 가능합니다.

Ncloud(네이버 클라우드) Rocky Linux 8.10 서버에 MariaDB 10.11 버전을 설치하는 방법

MariaDB 지원 인증 방식 종류

  • mysql_native_password
  • mysql_old_password
  • ed25519
  • gssapi
  • pam (Unix only)
  • unix_socket (Unix only)
  • named_pipe (Windows only)

참고 URL

  1. MariaDB 다운로드 페이지
    https://mariadb.org/download/

  2. MariaDB 가이드 페이지
    https://mariadb.com/kb/en/

  3. Rocky Linux 서버에 MySQL 8.0 최신 버전 설치하는 방법
    https://docs.3rdeyesys.com/docs/database/mysql-mariadb/install/mysql-8-latest-version-install-on-rocky-linux/

  4. Rocky Linux 8.8에 MariaDB 10.11 설치하는 방법
    https://docs.3rdeyesys.com/docs/database/mysql-mariadb/install/mariadb-10.11-install-on-rocky-linux-guide/

문서 업데이트 내역

날짜 내용
2024-07-30 문서 최초 생성