— RHEL 계열 서버에서 가장 안정적인 오픈소스 DB 구축
“MariaDB는 MySQL의 대안이 아니라,
이제는 엔터프라이즈급 기본 선택지다.”
1️⃣ 사전 환경 확인
✔️ 지원 환경
- Rocky Linux 8.x / 9.x
- root 권한 또는 sudo 권한
- 인터넷 연결 (내부망일 경우 로컬 repo 필요)
cat /etc/rocky-release
2️⃣ 패키지 업데이트 (권장)
sudo dnf update -y
sudo dnf install -y epel-release
💡 운영 서버에서는 정기 패치 정책에 따라 적용 여부 판단
3️⃣ MariaDB 설치 방법 선택
🔹 방법 A: Rocky Linux 기본 저장소 (안정성 우선)
sudo dnf install -y mariadb-server mariadb
- 장점: 안정적, 테스트 충분
- 단점: 최신 버전 아님 (Rocky 8 → MariaDB 10.3 계열)
🔹 방법 B: MariaDB 공식 Repository (최신 버전)
1) 공식 repo 설정
sudo tee /etc/yum.repos.d/MariaDB.repo <<EOF
[mariadb]
name = MariaDB baseurl = https://yum.mariadb.org/10.11/rhel8-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 EOF
🔎
10.11은 LTS(Long Term Support) 버전
Rocky 9 사용 시rhel9-amd64로 변경
2) 설치
sudo dnf install -y MariaDB-server MariaDB-client
4️⃣ MariaDB 서비스 시작 및 자동 실행 설정
sudo systemctl start mariadb
sudo systemctl enable mariadb
상태 확인:
systemctl status mariadb
5️⃣ 초기 보안 설정 (⚠️ 반드시 수행)
sudo mariadb-secure-installation
권장 설정 값
| 항목 | 설정 |
|---|---|
| root 비밀번호 설정 | ✅ Yes |
| unix_socket 인증 사용 | ❌ No (운영 편의성 고려) |
| 익명 사용자 제거 | ✅ Yes |
| 원격 root 로그인 차단 | ✅ Yes |
| test DB 삭제 | ✅ Yes |
| privilege 테이블 reload | ✅ Yes |
6️⃣ MariaDB 접속 테스트
mariadb -u root -p
버전 확인:
SELECT VERSION();
7️⃣ 기본 DB 및 사용자 생성 (운영 예시)
CREATE DATABASE appdb
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
CREATE USER 'appuser'@'%' IDENTIFIED BY 'StrongPassword!';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'%';
FLUSH PRIVILEGES;
🔐 실제 운영에서는
%대신 서버 IP 제한 권장
8️⃣ 방화벽 설정 (외부 접속 시)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
확인:
sudo firewall-cmd --list-all
9️⃣ MariaDB 주요 설정 파일 튜닝
설정 파일 위치
/etc/my.cnf
/etc/my.cnf.d/server.cnf
운영용 기본 튜닝 예시
[mysqld]
bind-address = 0.0.0.0
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
max_connections = 300
innodb_buffer_pool_size = 4G
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 1
적용 후 재시작:
sudo systemctl restart mariadb
🔐 10️⃣ 보안 강화 체크리스트 (운영 필수)
| 항목 | 설명 |
|---|---|
| root 원격 접속 차단 | 로컬 접속만 허용 |
| 사용자별 권한 최소화 | DB 단위 권한 부여 |
| 정기 백업 | mysqldump, Proxmox/Vembu 연계 |
| SSL/TLS | 내부/외부 통신 암호화 |
| 감사 로그 | query log / audit plugin 활용 |
💾 11️⃣ 백업 기본 예제
mysqldump -u root -p appdb > appdb_$(date +%F).sql
자동화(cron):
0 2 * * * /usr/bin/mysqldump -u root -p'password' appdb > /backup/appdb.sql
⚠️ 비밀번호는 스크립트에 직접 노출 금지
.my.cnf사용 권장
🧯 12️⃣ 장애 대응 기본 명령
journalctl -u mariadb
mariadb-admin -u root -p status
포트 확인:
ss -ntlp | grep 3306
✅ 설치 완료 체크리스트
- MariaDB 서비스 정상 기동
- root 보안 설정 완료
- 운영 DB 및 사용자 생성
- 방화벽 설정
- 기본 성능 튜닝
- 백업 전략 수립
🎯 결론
Rocky Linux + MariaDB 조합은:
- ✔️ RHEL 계열 최고의 오픈소스 DB 스택
- ✔️ 안정성, 성능, 라이선스 부담 없음
- ✔️ VM/컨테이너/클라우드 어디서든 동일하게 운영 가능
“중소·중견기업부터 엔터프라이즈까지
MariaDB는 이제 기본값(Default) 이다.”
2930 Blog에서 더 알아보기
구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.
