블로그 방문자만 3개월 추가 무료 이용권 + 3년 플랜 10% 할인 혜택을 받으세요 와이스블로그10
거래를 잡아

리눅스 서버에 MariaDB를 설치하는 방법: 단계별 가이드 (2026)

마지막 업데이트 : 2026 년 9 월 7 일 9 분 읽음 프라흐라드 프라자파티
Linux에 MariaDB 설치하기

Linux 서버에 MariaDB를 설치하려면패키지를 업데이트하고, 공식 MariaDB 저장소를 추가(선택 사항)하고, 배포판의 패키지 관리자를 통해 MariaDB 서버 패키지를 설치하세요. manager 명령을 실행하여 서비스를 활성화하고 시작한 다음, mysql_secure_installation을 실행하여 보안을 강화하고 데이터베이스와 사용자를 생성합니다. 명령어는 Ubuntu/Debian, RHEL/Rocky, SUSE 및 Amazon Linux에서 약간씩 다릅니다.

Linux 서버에 MariaDB를 설치하는 것은 간단하며, 빠르고 오픈 소스인 관계형 데이터베이스를 사용할 수 있게 해줍니다. MySQL이 가이드는 주요 배포판 설치, 보안 강화, 원격 액세스, 성능 튜닝, 백업 및 문제 해결에 대한 단계별 지침을 제공하며, 실제 서버 경험을 바탕으로 작성되었으므로 초보자도 자신 있게 프로덕션 환경으로 전환할 수 있습니다.


MariaDB란 무엇이며, 리눅스에 설치해야 하는 이유는 무엇일까요?

MariaDB는 드롭인 대체품 MySQL 원래 개발 MySQL 개발자들이 만든 플랫폼입니다. 안정성, 성능, 그리고 개방형 거버넌스 모델로 잘 알려져 있습니다.

리눅스에서는 systemd 패키지와 깔끔하게 통합됩니다. manageLinux는 SELinux/AppArmor와 같은 보안 프레임워크를 지원하므로 많은 웹 앱, CMS(WordPress 포함) 및 분석 워크로드에서 기본 데이터베이스로 사용됩니다.

MariaDB란 무엇이며, 리눅스에 설치해야 하는 이유는 무엇일까요?

사전 조건

시작하기 전에 다음 사항을 확인하십시오.

  • 지원되는 Linux 배포판(Ubuntu/Debian, RHEL/Rocky/AlmaLinux, SUSE, Amazon Linux)
  • 루트 또는 sudo 액세스
  • (소포 수령을 위한) 외부 인터넷 접속
  • 원격 클라이언트가 연결할 수 있도록 TCP 포트 3306을 열어 두십시오.

설치 소스를 선택하세요: 배포판 저장소 또는 MariaDB 저장소

MariaDB는 사용하는 배포판의 저장소(안정적이고 긴밀하게 통합됨) 또는 공식 MariaDB 저장소(10.11/11.4와 같은 최신 기능 및 LTS 버전)에서 설치할 수 있습니다. 대부분의 사용자에게는 배포판 패키지가 적합하지만, 고급 기능이나 최신 버전을 사용하려면 MariaDB 저장소를 이용하십시오.

주요 Linux 배포판에 MariaDB 설치하기

우분투 22.04/24.04 및 데비안 11/12 (배포판 패키지)

sudo apt update
sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb
sudo mysql_secure_installation
mariadb --version

팁: Ubuntu/Debian에서는 루트 데이터베이스 계정이 종종 unix_socket 인증을 사용합니다. 암호 없이 루트로 로그인하려면 `sudo mariadb` 명령을 사용하세요.

우분투/데비안(MariaDB 공식 저장소)

sudo apt update
sudo apt install -y curl ca-certificates gnupg
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo apt update
sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

RHEL 8/9, Rocky Linux, AlmaLinux (배포판 또는 MariaDB 저장소)

# Option A: MariaDB official repository
sudo dnf install -y curl
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo dnf install -y MariaDB-server MariaDB-client

# Option B: Distro-provided packages (names may vary)
# sudo dnf install -y mariadb-server

sudo systemctl enable --now mariadb
sudo mysql_secure_installation
mariadb --version

아마존 리눅스 2023년 2월

# Amazon Linux 2
sudo yum install -y mariadb-server
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

# Amazon Linux 2023 (dnf)
# sudo dnf install -y mariadb-server
# sudo systemctl enable --now mariadb
# sudo mysql_secure_installation

openSUSE/SLES

sudo zypper refresh
sudo zypper install -y mariadb
sudo systemctl enable --now mariadb
sudo mysql_secure_installation

설치 보안

mysql_secure_installation은 안전하지 않은 기본 설정을 제거하고 인증 옵션을 설정하는 데 도움이 됩니다. 메시지가 표시되면 강력한 설정을 선택하십시오.

  • 익명의 사용자 제거
  • 원격 루트 로그인 금지
  • 테스트 데이터베이스를 삭제합니다.
  • 권한 테이블 다시 로드

사용하는 배포판에서 루트 권한으로 unix_socket을 사용하는 경우(Ubuntu/Debian 등), 루트 인증 방식을 변경하는 것보다 별도의 관리자 사용자를 생성하는 것이 좋습니다.

sudo mariadb
CREATE USER 'dbadmin'@'localhost' IDENTIFIED BY 'Strong!Passw0rd';
GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

데이터베이스 및 앱 사용자 생성

sudo mariadb
CREATE DATABASE appdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'%' IDENTIFIED BY 'Another$trongP@ss';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'%';
FLUSH PRIVILEGES;

%를 사용하면 모든 호스트에서 연결할 수 있습니다. 보안을 강화하려면 %를 특정 IP 주소 또는 서브넷 마스크로 바꾸십시오(예: 'appuser'@'192.0.2.%').


원격 연결 허용 (선택 사항)

원격 접속을 위해서는 MariaDB가 네트워크 인터페이스에서 수신 대기하도록 구성하고 방화벽을 열어 두십시오. 필요한 경우에만 이 기능을 활성화하고, 그렇지 않은 경우에는 보안 강화를 위해 로컬에 유지하는 것이 좋습니다.

1) 바인딩 주소

서버 설정을 편집합니다(경로는 배포판에 따라 다릅니다).

  • 데비안/우분투: /etc/mysql/mariadb.conf.d/50-server.cnf
  • RHEL/Rocky/AlmaLinux: /etc/my.cnf.d/server.cnf 또는 /etc/my.cnf
[mysqld]
bind-address = 0.0.0.0
port = 3306

그런 다음 다시 시작하세요.

sudo systemctl restart mariadb

2) 방화벽을 여세요

# UFW (Ubuntu)
sudo ufw allow 3306/tcp

# firewalld (RHEL/Rocky/AlmaLinux)
sudo firewall-cmd --add-service=mysql --permanent
sudo firewall-cmd --reload

SELinux: 기본 포트 3306이 허용됩니다. 포트를 변경하는 경우 레이블을 지정하십시오.

sudo semanage port -a -t mysqld_port_t -p tcp 3307
sudo systemctl restart mariadb

서비스 관리 및 로그

# Service control
sudo systemctl status mariadb
sudo systemctl restart mariadb
sudo systemctl enable --now mariadb

# Logs (vary by distro)
# Debian/Ubuntu
sudo tail -n 100 /var/log/mysql/error.log
# RHEL/Rocky/AlmaLinux
sudo tail -n 100 /var/log/mariadb/mariadb.log
# Journal
sudo journalctl -u mariadb --no-pager -e

성능 튜닝 필수 요소

먼저 적절한 기본 설정을 사용한 다음, 작업 부하 및 지표에 따라 반복적으로 조정하십시오. 메인 서버 구성을 편집하고 다시 시작하십시오.

  • innodb_buffer_pool_size: MariaDB 전용 서버를 사용하는 경우, 사용률을 약 50~70%로 설정하십시오. RAM.
  • innodb_flush_log_at_trx_commit: 1은 최대 내구성(기본값)을, 2는 내구성은 약간 떨어지지만 성능이 더 좋은 옵션을 의미합니다.
  • 최대 연결 수: 예상되는 동시 접속자 수(예: 200)에 맞춰 크기를 조정하고, 운영체제와 하드웨어가 이를 처리할 수 있는지 확인하십시오.
  • tmp_table_size 및 max_heap_table_size: 디스크 임시 테이블에서 값을 줄이려면 값을 늘리십시오(값은 동일하게 유지).
  • 느린 쿼리 로그: 문제가 있는 쿼리를 포착하고 필요한 곳에 인덱스를 추가하도록 설정합니다.
[mysqld]
innodb_buffer_pool_size = 4G
innodb_flush_log_at_trx_commit = 1
max_connections = 200
tmp_table_size = 256M
max_heap_table_size = 256M
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1

참고 : MariaDB는 이전 쿼리 캐시를 더 오래 유지했습니다. MySQL하지만 최신 워크로드에는 권장되지 않습니다. 대신 인덱스, 스키마 및 버퍼 크기 조정에 집중하세요.


백업 및 복원(실용적인 옵션)

소규모에서 중간 규모의 데이터베이스와 간단한 워크플로우에는 mysqldump가 간편하고 안정적입니다. 대규모의 핫 백업이 필요한 경우에는 MariaDB의 핫 ​​물리적 백업 도구인 mariabackup을 고려해 보세요.

mysqldump를 이용한 논리적 백업

# Single database (consistent InnoDB snapshot)
mysqldump -u root -p --single-transaction --routines --triggers appdb > appdb_$(date +%F).sql

# All databases
mysqldump -u root -p --single-transaction --routines --triggers --events --all-databases > full_$(date +%F).sql

복원

mysql -u root -p appdb < appdb_2025-01-01.sql
# Or for full dump:
mysql -u root -p < full_2025-01-01.sql

일반적인 문제 해결

"사용자 'root'@'localhost'에 대한 액세스가 거부되었습니다."

Ubuntu/Debian에서는 sudo mariadb 명령어를 사용하여 소켓 인증을 통해 루트로 로그인할 수 있습니다. 암호가 있는 루트 계정이나 새로운 관리자 계정이 필요한 경우, 위에서 설명한 대로 생성하십시오.

"로컬에 연결할 수 없습니다." MySQL 소켓을 통한 서버 연결

  • 서비스 확인: sudo systemctl 상태 mariadb
  • 소켓 경로가 클라이언트 구성과 일치하는지 확인하십시오(예: /var/run/mysqld/mysqld.sock).
  • 충돌이나 권한 문제를 확인하려면 오류 로그를 검토하십시오.

루트 비밀번호 재설정 (긴급)

sudo systemctl stop mariadb
sudo mysqld_safe --skip-grant-tables --skip-networking &
# In another terminal:
mariadb
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'New!SuperSecurePass';
FLUSH PRIVILEGES;
# Stop the safe server and start normally
sudo pkill -f mysqld_safe
sudo pkill -f mysqld
sudo systemctl start mariadb

생산 강화 체크리스트

  • 비활성화하거나 제거하세요 '뿌리'@'%'계정; 루트 권한을 원격으로 노출하지 마십시오.
  • 앱 사용자에게 최소한의 권한만 부여하십시오(특정 데이터베이스에 대한 권한만 부여하고, 전체 관리자 권한은 부여하지 마십시오).
  • 신뢰할 수 있는 호스트 및 서브넷으로 네트워크 액세스를 제한하고 방화벽과 보안 그룹을 사용하십시오.
  • 강력한 암호를 사용하도록 강제하고 필요한 경우 PAM/LDAP 통합을 고려하십시오.
  • 정기적인 백업을 활성화하고 복원 테스트를 수행하십시오.
  • 메트릭 및 로그를 사용하여 모니터링합니다(Prometheus 익스포터, 슬로우 로그 분석).
  • OS와 MariaDB의 패치를 최신 상태로 유지하고, 유지보수 시간을 예약하세요.

업그레이드 및 제거

업그레이드

# Ubuntu/Debian (distro repo or MariaDB repo)
sudo apt update
sudo apt install -y mariadb-server

# RHEL/Rocky/AlmaLinux
sudo dnf upgrade -y MariaDB-server MariaDB-client

# After package upgrade
sudo systemctl restart mariadb
mariadb --version

(주의해서) 제거하세요.

# Ubuntu/Debian
sudo apt remove --purge -y mariadb-server mariadb-client
sudo rm -rf /var/lib/mysql /etc/mysql

# RHEL/Rocky/AlmaLinux
sudo dnf remove -y MariaDB-server MariaDB-client
sudo rm -rf /var/lib/mysql /etc/my.cnf /etc/my.cnf.d

패키지나 디렉토리를 삭제하기 전에 항상 데이터를 백업하십시오.

호스팅 전문가가 알려주는 실용적인 팁

  • 올바른 유니코드 지원(이모티콘, 다국어 지원)을 위해 모든 곳에서 utf8mb4를 사용하십시오.
  • 성능 향상 및 손쉬운 마이그레이션을 위해 데이터를 운영체제 디스크와 분리하고, 올바른 소유권 및 SELinux/AppArmor 컨텍스트를 확보하십시오.
  • 벤치마크(sysbench)는 튜닝 전후에 변경되어 회귀 현상을 방지합니다.
  • WordPress의 경우, wp_options 자동 로드 행의 인덱스를 최적화하고 플러그인을 가볍게 유지하세요.
  • 여러 노드에서 쓰기 작업이 필요한 경우 Galera Cluster를 사용하여 고가용성을 고려하십시오.

전문가를 선호하신다면 managed 설정, YouStable의 manageVPS 및 전용 서버 MariaDB를 프로비저닝, 보안 및 모니터링하는 작업을 저희가 수행하므로 고객은 애플리케이션 개발에 집중할 수 있으며, 시스템 가동 시간, 백업 및 확장은 저희가 관리합니다.


자주 묻는 질문

어떤 MariaDB 버전을 설치해야 할까요?

안정성을 위해서는 배포판의 기본 버전을 사용하고, 최신 기능을 사용하려면 MariaDB 저장소를 이용하세요. 프로덕션 환경에서 장기적인 지원을 받으려면 활성 LTS 브랜치(예: 작성 시점 기준 10.11 또는 11.4)를 사용하는 것이 좋습니다.

원격 연결을 안전하게 허용하려면 어떻게 해야 하나요?

바인드 주소를 0.0.0.0(또는 특정 IP 주소)으로 설정하고, 호스트/IP 주소로 사용이 제한된 사용자를 생성하고, 필요한 방화벽 규칙만 열어 두십시오. VPN 사용을 고려해 보세요. SSH 관리자 접근용 터널 그리고 절대로 원격으로 루트 권한을 노출하지 마십시오.

MariaDB와 다른 데이터베이스의 차이점은 무엇인가요? MySQL?

MariaDB는 커뮤니티 주도로 개발된 포크 버전입니다. MySQL 호환 가능한 클라이언트/서버 프로토콜 및 도구를 제공합니다. 추가 엔진과 기능을 포함하며 개방형 개발 모델을 따릅니다. 많은 앱이 서로 호환되지만, 버전별 기능이나 구문 차이를 항상 확인해야 합니다.

MariaDB를 정기적으로 백업하려면 어떻게 해야 하나요?

논리적 백업에는 cron 작업을 통해 mysqldump를 사용하고, 물리적 백업에는 mariabackup을 사용하십시오. 백업 파일은 서버 외부에 저장하고 암호화하며, 복구 시간과 무결성을 검증하기 위해 정기적으로 복원 테스트를 수행하십시오.

MariaDB는 WordPress와 전자상거래에 적합한가요?

네 . MariaDB는 수백만 개의 WordPress 및 WooCommerce 사이트에 사용되고 있습니다. utf8mb4를 사용하고, 느린 쿼리 로깅을 활성화하고, 플러그인을 최소한으로 유지하고, innodb_buffer_pool 크기를 적절하게 설정하세요. 트래픽이 증가하면 읽기 복제본이나 Galera 클러스터를 고려해 보세요.


맺음말

지금까지 Linux 서버에 MariaDB를 설치하고, 보안을 강화하고, 원격 접속을 활성화하고, 성능을 최적화하고, 백업을 설정하는 방법을 배웠습니다. 간편하게 설치하려면 배포판 패키지를 사용하거나, 최신 LTS 기능을 사용하려면 MariaDB 저장소를 이용하세요. 자동으로 최적화된 설정을 원한다면, YouStable manageMariaDB를 모니터링하고 확장해 드립니다.

코멘트 남김

이메일 주소는 공개되지 않습니다. 필수 입력 항목은 * 로 표시되어 있습니다.

위쪽으로 스크롤