Rocky Linux 8.8에 MariaDB 10.11 설치하는 방법
개요
Ncloud(네이버 클라우드) Rocky Linux 8.8 서버에 MariaDB 10.11 버전을 설치하는 방법을 정리해보겠습니다. 설치하면서 데이터 저장 디렉토리(datadir) 위치를 별도의 디렉토리로 변경해서 설치하는 방법입니다.
설치 환경
- Rocky Linux: 8.8
- MariaDB: 10.11
- 데이터 저장 디렉토리(datadir) 위치 변경
- 로그(log_error) 저장 디렉토리 위치 변경
서버 준비
2024-06-26 현재 Ncloud에서 제공하는 Rocky Linux 서버 이미지의 최신 버전은 Rocky Linux 8.8 입니다.
패키지 업데이트
우선, 패키지 관련한 보안-버그 수정 사항만 최소한으로 업데이트를 해보겠습니다.
dnf -y upgrade-minimal
데이터 저장 디렉토리 생성
DB 데이터와 로그를 저장할 임의의 디렉토리를 생성합니다. /data/db/mariadb 과 같이 생성하겠습니다.
각 디렉토리에 대한 권한 설정은 아래쪽에서 진행하겠습니다.
mkdir -p /data/db/mariadb/
mkdir -p /data/log/mariadb/
MariaDB 설치
리포지토리 정보 확인
MariaDB 다운로드 사이트에서 [MariaDB 10.11] 버전의 리포지토리 정보를 확인합니다.
리포지토리 생성
[/etc/yum.repos.d/] 디렉토리에 MariaDB 설치를 위한 리포지토리를 [MariaDB.repo]라는 이름으로 생성합니다.
vim /etc/yum.repos.d/MariaDB.repo
- 아래 [baseurl]에서 원래는 […10.11/centos/
$releasever
/$basearch]였던 부분을 […10.11/centos/8
/$basearch]로 수정해서 저장합니다.
# MariaDB 10.11 CentOS repository list - created 2024-06-24 08:20 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.11/centos/$releasever/$basearch
baseurl = https://tw1.mirror.blendbyte.net/mariadb/yum/10.11/centos/8/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://tw1.mirror.blendbyte.net/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
설치
MariaDB-server와 MariaDB-client를 설치합니다.
dnf -y install MariaDB-server MariaDB-client
환경 설정 변경
환경 설정 파일을 열어서 몇가지 설정을 변경하겠습니다.
환경 설정 파일 위치
환경 설정 파일의 위치는 [/etc/my.cnf.d/] 디렉토리에 있고, 이 중에서 [server.cnf] 파일과 [client.cnf] 파일을 수정하겠습니다.
server.cnf
vim /etc/my.cnf.d/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
client.cnf
vim /etc/my.cnf.d/client.cnf
[client-mariadb]
# 선택사항: CharacterSet 설정 추가
default-character-set=utf8mb4
MariaDB 초기화
데이터 저장 디렉토리가 변경되었기에 아래 명령어로 기본 데이터베이스 생성 등의 초기화 작업을 진행합니다. 이때 위에서 생성한 [/data/db/mariadb/] 디렉토리에서 초기화가 진행됩니다.
초기화 한 후에 디렉토리를 살펴보면 아래와 같이 기본 데이터 베이스 등이 정상적으로 생성된 것을 확인할 수 있습니다.
mariadb-install-db
ls -al /data/db/mariadb/
디렉토리 소유권 변경
데이터와 로그가 저장되는 디렉토리에 대한 소유권을 변경해야 하는데, 변경하기 전에 현재 상태를 확인해보면 root:root로 되어 있는 것을 알 수 있습니다.
아래 명령으로 데이터와 로그 디렉토리에 대한 소유권을 mysql:mysql로 변경합니다. (mariadb가 아니고 mysql인 것에 주의
해야 합니다.)
chown -R mysql:mysql /data/db/mariadb/
chown -R mysql:mysql /data/log/mariadb/
MariaDB 데몬 시작
초기화와 소유권 변경까지 마쳤으면 MariaDB 데몬을 시작하고, 서버 재시작시에도 자동으로 실행되도록 설정합니다.
systemctl enable mariadb
systemctl start mariadb
systemctl status mariadb
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.
기타 보안 설정
그 다음 보안 설정에서는 [익명 계정 삭제], [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!
MariaDB 접속
이제 DB에 접속해보면 [10.11.8] 버전인 것을 확인할 수 있습니다.
[show databases] 명령으로 데이터베이스를 확인해보면 기본 데이터베이스 등 각종 시스템 데이터베이스가 모두 정상적으로 나타나고, 테스트용 데이터베이스 등은 삭제된 것을 알 수 있습니다.
MariaDB
MariaDB> show databases;
MariaDB 지원 인증 방식 종류
- mysql_native_password
- mysql_old_password
- ed25519
- gssapi
- pam (Unix only)
- unix_socket (Unix only)
- named_pipe (Windows only)
참고 URL
-
MariaDB 다운로드 페이지 https://mariadb.org/download/
-
MariaDB 가이드 페이지 https://mariadb.com/kb/en/
-
Rocky Linux 서버에 MySQL 8.0 최신 버전 설치하는 방법
https://docs.3rdeyesys.com/docs/database/mysql-mariadb/install/mysql-8-latest-version-install-on-rocky-linux/
문서 업데이트 내역
날짜 | 내용 |
---|---|
2024-06-26 | 문서 최초 생성 |