MariaDB 10.3 설치

개요

MariaDB는 MySQL의 오픈소스 포크로, MySQL과 거의 동일한 SQL 문법과 드라이버를 지원하면서 성능 개선과 추가 기능을 제공합니다. CentOS 7 기본 yum 저장소에는 MariaDB 5.5가 포함되어 있어, 10.3 이상의 버전을 설치하려면 공식 MariaDB 저장소를 추가해야 합니다. MariaDB 10.3은 장기 지원(LTS) 버전으로 안정성이 검증되어 있으며 WordPress, Zabbix, rsyslog 등 다양한 애플리케이션과 호환됩니다.

이 글에서는 CentOS 7 환경에 MariaDB 10.3을 설치하는 방법을 정리합니다. MariaDB 공식 yum 리포지토리를 등록한 후 패키지를 설치하고, 초기 보안 설정(mysql_secure_installation)을 진행하여 운영 환경에서 사용할 수 있는 상태로 구성하는 절차를 다룹니다.

1. yum repository 경로 설정

# vi /etc/yum.repos.d/MariaDB.repo

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

2. 패키지 설치 및 서비스 실행

# yum install MariaDB-client MariaDB-server -y

# systemctl enable mariadb
# systemctl start mariadb

3. mariadb 접속 확인 및 비밀번호 설정

# mysql -u root

> use mysql;

> update user set password = password('새비밀번호') where user='root';
// 비밀번호 설정('') 넣어야 됨
> flush privileges;

mysql_secure_installation 보안 설정

MariaDB 설치 후 초기 상태에서는 root 계정에 비밀번호가 없고 익명 사용자 계정이 존재하는 등 보안이 취약합니다. mysql_secure_installation을 실행하면 대화형으로 보안 강화 설정을 진행할 수 있습니다.

# mysql_secure_installation

# 주요 질문과 권장 답변:
# Set root password? → Y, 강력한 비밀번호 입력
# Remove anonymous users? → Y (익명 사용자 제거)
# Disallow root login remotely? → Y (root 원격 접속 차단)
# Remove test database? → Y (테스트 DB 제거)
# Reload privilege tables? → Y (권한 테이블 즉시 반영)

보안 설정 완료 후 root 비밀번호로 로그인되는지 확인합니다. 애플리케이션 전용 계정은 root 대신 별도 계정을 생성하고 필요한 DB에만 권한을 부여하는 최소 권한 원칙을 따르는 것이 권장됩니다.

캐릭터셋 및 시간대 설정

한국어 데이터와 이모지를 올바르게 저장하려면 캐릭터셋을 utf8mb4로 설정합니다. /etc/my.cnf.d/mariadb-server.cnf(또는 /etc/my.cnf)에 아래 설정을 추가합니다.

[mysqld]
character-set-server = utf8mb4
collation-server     = utf8mb4_unicode_ci
default-time-zone    = '+09:00'

[client]
default-character-set = utf8mb4

설정 변경 후 systemctl restart mariadb로 서비스를 재시작하고, SHOW VARIABLES LIKE 'character%'로 적용 여부를 확인합니다.

초기 데이터베이스 및 계정 생성

MariaDB 설치 후 애플리케이션 전용 데이터베이스와 계정을 생성하는 것이 기본 설정 마무리 단계입니다. root 계정을 직접 사용하는 것보다 애플리케이션별 전용 계정을 만들고 필요한 데이터베이스에만 권한을 부여하는 최소 권한 원칙을 따릅니다. 아래는 WordPress용 DB와 계정 생성 예시입니다.

-- MariaDB root로 접속
$ mysql -u root -p

-- 데이터베이스 생성 (utf8mb4 charset 지정)
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 전용 계정 생성 및 권한 부여
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '<REDACTED>';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;

-- 계정 및 권한 확인
SELECT user, host FROM mysql.user;
SHOW GRANTS FOR 'wp_user'@'localhost';

원격 접속이 필요한 경우 'wp_user'@'%'로 생성하되, 방화벽에서 3306 포트를 신뢰하는 IP 대역으로만 제한하는 것이 권장됩니다. MariaDB의 bind-address 설정을 통해 특정 인터페이스에서만 리스닝하도록 제한하면 추가적인 보안 레이어를 확보할 수 있습니다. 계정 생성 후 mysql -u wp_user -p wordpress로 접속이 정상적으로 되는지 반드시 검증합니다.

참고

참고 문서: MariaDB yum 리포지토리 설정 공식 문서 · mysql_secure_installation 가이드

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.