wiki:MariaDB 설치

MariaDB 설치

1. 배포판 패키지

1.1. 기본 패키지

RHEL 8에 설치되는 mariadb 버전은 10.3이 디폴트다. RHEL 9에 설치되는 mariadb 버전은 10.5가 디폴트다. 디폴트 버전을 설치할 때는 바로 설치하면 된다.

gssapi 로그인을 사용할 것이 아니라면 mariadb-gssapi-server 패키지는 지우는 것이 낫다.

# dnf install mariadb-server
# rpm -e mariadb-gssapi-server

1.2. Application Stream 패키지

기본 패키지가 아닌 Application Stream에서 지원하는 패키지를 설치하려면 먼저 해당 버전의 스트림을 활성화해야 한다.

예를 들어 RHEL 8에서 10.5 버전을 설치하려면 먼저 mariadb:10.5 스트림을 활성화한다. mariadb:10.5 스트림은 RHEL 8.4부터 지원한다.

# dnf module enable mariadb:10.5

그러면 다음과 같이 mariadb:10.5 스트림이 활성화된 것을 확인할 수 있다.

# dnf module list mariadb
Rocky Linux 8 - AppStream
Name               Stream             Profiles                          Summary
mariadb            10.3 [d]           client, galera, server [d]        MariaDB Module
mariadb            10.5 [e]           client, galera, server [d]        MariaDB Module

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

다음은 기본 패키지 설치과정과 동일하다. gssapi 로그인을 사용할 것이 아니라면 mariadb-gssapi-server 패키지는 지우는 것이 낫다.

# dnf install mariadb-server
# rpm -e mariadb-gssapi-server

2. MariaDB 사이트 패키지

https://mariadb.com/kb/en/yum/

배포판에서 기본으로 제공하는 기능이 아닌 다른 기능을 사용하려고 하면 mariadb.org의 패키지로 설치하는 편이 좋다.

2.1. repository 설정

2.1.1. 최신 버전의 repository 설정

$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
# bash mariadb_repo_setup

2.1.2. 특정 버전의 repository 설정

RHEL 8 등에 최신 버전이 아닌 10.5 버전을 설치하고 싶다면 두 가지 방법으로 repository를 구성하면 된다.

하나는 https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/ 에서 제공하는 방법이다.

# curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | bash -s -- --mariadb-server-version="mariadb-10.5"

다른 하나는 다음과 같다.

MariaDB Repository Configuration Tool에서 Redhat > Red Hat EL 8 (x86_64) > 10.3 을 차례로 선택하면 권장하는 repository 설정을 보여주는 데 이를 복사해서 /etc/yum.repos.d/MariadDB.repo 파일을 만들어준다.

# MariaDB 10.3 RedHat repository list - created 2021-05-06 03:02 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/rhel8-amd64
module_hotfixes=1
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

2.1.3. 특정 마이너 릴리즈의 repository 설정

일반적인 경우는 아니나 소수점 둘째 자리(마이너 릴리즈)까지 버전을 특정해서 설치하고 싶은 경우에는 MariadDB.repo의 baseurl을 yum.maradb.org의 특정 마이너 릴리즈로 설정하면 된다.

예를 들어 repository를 CentOS 7의 MariaDB 10.3.14에 고정하려는 경우 /etc/yum.repos.d/MariaDB.repo를 다음과 같이 지정한다.

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

yum.mariadb.org에서 원하는 마이너 릴리즈가 없다면 archive.mariadb.org에서 찾으면 된다.

2.2. MariaDB 설치

dnf install MariaDB-server

2.3. 설정 파일 수정

  • /etc/my.cnf.d/mysql-clients.cnf
  • /etc/my.cnf.d/server.cnf
  • /etc/fail2ban/paths-fedora.local
    • fail2ban가 찾는 기본 로그 파일 위치는 /var/log/mariadb/mariadb.log이다. 따라서 로그 파일 위치가 /var/log/mariadb/mariadb.log가 아니라면 적절하게 수정해준다.
  • /etc/logrotate.d/mysql
    • logrotate가 찾는 기본 로그 파일 위치는 /var/lib/mysql/mysqld.log이다. 따라서 로그 파일 위치가 /var/lib/mysql/mysqld.log가 아니라면 적절하게 수정해준다.
  • /etc/my.cnf.d/server-tls.cnf
    • MariaDB 접속을 암호화하려면 추가한다.

2.4. MariaDB 시작

# systemctl enable --now mariadb

2.5. 스키마 업데이트

기본 MariaDB에서 업그레이드 설치한 것이라면 스키마도 업데이트

# mysql_upgrade -u root -p

2.6. 배포판 패키지와 차이점

구분배포판MariaDB
패키지 이름mariadb-serverMariaDB-server
서버 설정 파일/etc/my.cnf.d/mariadb-server.cnf/etc/my.cnf.d/server.cnf
로그 디렉토리/var/log/mariadb없음
로그 파일/var/log/mariadb/mariadb.log없음
logrotate 설정 파일 위치/etc/logrotate.d/mariadb/etc/logrotate.d/mysql
logrotate 설정의 로그 파일 위치/var/log/mariadb/mariadb.log/var/lib/mysql/mysqld.log
PID 디렉토리/run/mariadb없음
PID 파일/run/mariadb/mariadb.pid/var/lib/mysql/[hostname].pid

배포판 패키지와 MariaDB 사이트 패키지를 둘다 사용할 때는 관리의 편의를 위하여 다음과 같이 하는 것을 추천한다.

  • MariaDB 사이트 패키지의 서버 설정 파일을 /etc/my.cnf.d/mariadb-server.cnf로 변경한다.
  • MariaDB 사이트 패키지의 logrotate 설정 파일을 /etc/logrotate.d/mariadb로 변경한다.
  • MariaDB 사이트 패키지의 로그 디렉토리와 PID 디렉토리를 tmpfiles.d 를 이용해 /var/log/mariadb/, /run/mariadb/ 로 배포판과 동일하게 만든다.
  • 로그 파일과 PID 파일을 배포판과 동일하게 정해준다.
    [mysqld]
    ...
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/run/mariadb/mariadb.pid
    

2.6.1. tmpfiles.d

mariadb repository에서 설치한 MariaDB의 pid 저장 위치를 RHEL 배포판의 저장 위치와 동일하게 변경하기 위해서 pid-file=/run/mariadb/mariadb.pid 로 지정하면 /run/mariadb 디렉토리가 재부팅할 때마다 자동으로 만들어지도록 설정해야 한다.

이 때 사용하는 것이 tmpfiles.d 이다. 시스템 설정은 /usr/lib/tmpfiles.d 에, 사용자가 커스터마이징한 설정은 /etc/tmpfiles.d 에 저장한다. 따라서 /usr/lib/tmpfiles.d/mariadb.conf 파일을 /etc/tmpfiles.d/ 디렉토리에 복사하고 다음 내용을 추가하면 된다.

d /var/lib/mysql 0755 mysql mysql -
# MariaDB의 pid 파일 위치를 RHEL 기본 설정인 /run/mariadb/로 바꾸려면
# /run/mariadb 디렉토리가 만들어져 있어야 한다.
# RHEL 배포판에서는 이미 지정되어 있으므로 따로 지정할 필요가 없다.
# 추가한 이후에는 재부팅하거나 systemd-tmpfiles --create 명령을 내린다.
# 자세한 내용은 tmpfiles.d man 페이지 참고.
d /run/mariadb 0755 mysql mysql -
d /var/log/mariadb 0750 mysql mysql -

2.6.2. fail2ban

fail2ban으로 MariaDB의 로그 파일을 검사하고 있다면, fail2ban 설정도 확인해야 한다.

3. 윈도우즈 버전

윈도우 버전의 MariaDB는 다음 위치에서 순서대로 설정 파일을 찾는다. 이 순서는 mysqld —help 또는 mysqld —verbose —help 명령으로 알아볼 수 있다.

  1. MariaDB 서비스를 시작할 때 명령행에서 —defaults-file=# 옵션으로 지정한 파일. (리눅스도 마찬가지)
  2. %SYSTEMROOT%\my.ini (예) C:\WINDOWS\my.ini
  3. %SYSTEMROOT%\my.cnf (예) C:\WINDOWS\my.cnf
  4. %SYSTEMDRIVE%\my.ini (예) C:\my.ini
  5. %SYSTEMDRIVE%\my.cnf (예) C:\my.cnf
  6. MariaDB 설치 폴더\my.ini (예) C:\Program Files\MariaDB 10.3\my.ini
  7. MariaDB 설치 폴더\my.cnf (예) C:\Program Files\MariaDB 10.3\my.cnf
  8. MariaDB 데이터 폴더\my.ini (예) C:\Program Files\MariaDB 10.3\data\my.ini
  9. MariaDB 데이터 폴더\my.cnf (예) C:\Program Files\MariaDB 10.3\data\my.cnf

<주의> MariaDB 서비스를 시작할 때 명령행에서 —defaults-extra-file=# 옵션으로 지정한 파일은 위 설정 파일을 읽은 후 추가로 읽는다.. (리눅스도 동일)

윈도우 설치 프로그램이 MariaDB 데이터 폴더\my.ini 파일을 만들기 때문에 특별한 일이 없는한 MariaDB 데이터 폴더\my.ini 파일을 설정 파일로 사용하는 것을 권장한다.

3.1. 리눅스 설정과 달라지는 점

  • socket
    • 윈도우에서는 유닉스의 소켓 파일에 해당하는 네임드 파이프가 있으나 대부분 TCP/IP보다 느리다. 따라서 굳이 지정할 필요가 없다.
  • 로그 파일 위치는 권한 문제 때문에 MariaDB 데이터 폴더로 지정하는 것이 편하다.
    [mysqld]
    datadir=C:/Program Files/MariaDB 10.3/data
    log-error=C:/Program Files/MariaDB 10.3/data/mariadb.log
    pid-file=C:/Program Files/MariaDB 10.3/data/mariadb.pid
    

처음으로

Last modified 4 weeks ago Last modified on Nov 11, 2025, 10:35:27 AM
Note: See TracWiki for help on using the wiki.