Changes between Initial Version and Version 1 of MariaDB 설치


Ignore:
Timestamp:
Nov 11, 2025, 10:35:27 AM (4 weeks ago)
Author:
yongwoo
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • MariaDB 설치

    v1 v1  
     1[[PageOutline]]
     2= MariaDB 설치 =
     3== 1. 배포판 패키지 ==
     4=== 1.1. 기본 패키지 ===
     5RHEL 8에 설치되는 mariadb 버전은 10.3이 디폴트다. RHEL 9에 설치되는 mariadb 버전은 10.5가 디폴트다. 디폴트 버전을 설치할 때는 바로 설치하면 된다.
     6
     7gssapi 로그인을 사용할 것이 아니라면 mariadb-gssapi-server 패키지는 지우는 것이 낫다.
     8{{{
     9# dnf install mariadb-server
     10# rpm -e mariadb-gssapi-server
     11}}}
     12
     13=== 1.2. Application Stream 패키지 ===
     14기본 패키지가 아닌 Application Stream에서 지원하는 패키지를 설치하려면 먼저 해당 버전의 스트림을 활성화해야 한다.
     15
     16예를 들어 RHEL 8에서 10.5 버전을 설치하려면 먼저 mariadb:10.5 스트림을 활성화한다. mariadb:10.5 스트림은 RHEL 8.4부터 지원한다.
     17{{{
     18# dnf module enable mariadb:10.5
     19}}}
     20
     21그러면 다음과 같이 mariadb:10.5 스트림이 활성화된 것을 확인할 수 있다.
     22{{{
     23# dnf module list mariadb
     24Rocky Linux 8 - AppStream
     25Name               Stream             Profiles                          Summary
     26mariadb            10.3 [d]           client, galera, server [d]        MariaDB Module
     27mariadb            10.5 [e]           client, galera, server [d]        MariaDB Module
     28
     29Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
     30}}}
     31
     32다음은 기본 패키지 설치과정과 동일하다. gssapi 로그인을 사용할 것이 아니라면 mariadb-gssapi-server 패키지는 지우는 것이 낫다.
     33{{{
     34# dnf install mariadb-server
     35# rpm -e mariadb-gssapi-server
     36}}}
     37
     38
     39== 2. MariaDB 사이트 패키지 ==
     40https://mariadb.com/kb/en/yum/
     41
     42배포판에서 기본으로 제공하는 기능이 아닌 다른 기능을 사용하려고 하면 mariadb.org의 패키지로 설치하는 편이 좋다.
     43
     44=== 2.1. repository 설정 ===
     45==== 2.1.1. 최신 버전의 repository 설정 ====
     46{{{
     47$ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
     48# bash mariadb_repo_setup
     49}}}
     50
     51==== 2.1.2. 특정 버전의 repository 설정 ====
     52
     53RHEL 8 등에 최신 버전이 아닌 10.5 버전을 설치하고 싶다면 두 가지 방법으로 repository를 구성하면 된다.
     54
     55하나는 https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/ 에서 제공하는 방법이다.
     56{{{
     57# curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | bash -s -- --mariadb-server-version="mariadb-10.5"
     58}}}
     59
     60다른 하나는 다음과 같다.
     61
     62[https://downloads.mariadb.org/mariadb/repositories/ MariaDB Repository Configuration Tool]에서 Redhat > Red Hat EL 8 (x86_64) > 10.3 을 차례로 선택하면 권장하는 repository 설정을 보여주는 데 이를 복사해서 /etc/yum.repos.d/MariadDB.repo 파일을 만들어준다.
     63
     64{{{
     65# MariaDB 10.3 RedHat repository list - created 2021-05-06 03:02 UTC
     66# http://downloads.mariadb.org/mariadb/repositories/
     67[mariadb]
     68name = MariaDB
     69baseurl = http://yum.mariadb.org/10.3/rhel8-amd64
     70module_hotfixes=1
     71gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
     72gpgcheck=1
     73}}}
     74
     75==== 2.1.3. 특정 마이너 릴리즈의 repository 설정 ====
     76일반적인 경우는 아니나 소수점 둘째 자리(마이너 릴리즈)까지 버전을 특정해서 설치하고 싶은 경우에는 MariadDB.repo의 baseurl을 yum.maradb.org의 특정 마이너 릴리즈로 설정하면 된다.
     77
     78예를 들어 repository를 CentOS 7의 MariaDB 10.3.14에 고정하려는 경우 /etc/yum.repos.d/MariaDB.repo를 다음과 같이 지정한다.
     79{{{
     80[mariadb]
     81name = MariaDB-10.3.14
     82baseurl=http://yum.mariadb.org/10.3.14/centos7-amd64
     83# alternative: baseurl=http://archive.mariadb.org/mariadb-10.3.14/yum/centos7-amd64
     84gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
     85gpgcheck=1
     86}}}
     87
     88yum.mariadb.org에서 원하는 마이너 릴리즈가 없다면 archive.mariadb.org에서 찾으면 된다.
     89
     90=== 2.2. MariaDB 설치 ===
     91{{{
     92dnf install MariaDB-server
     93}}}
     94
     95=== 2.3. 설정 파일 수정 ===
     96* /etc/my.cnf.d/mysql-clients.cnf
     97* /etc/my.cnf.d/server.cnf
     98* /etc/fail2ban/paths-fedora.local
     99 - fail2ban가 찾는 기본 로그 파일 위치는 /var/log/mariadb/mariadb.log이다. 따라서 로그 파일 위치가 /var/log/mariadb/mariadb.log가 아니라면 적절하게 수정해준다.
     100* /etc/logrotate.d/mysql
     101 - logrotate가 찾는 기본 로그 파일 위치는 /var/lib/mysql/mysqld.log이다. 따라서 로그 파일 위치가 /var/lib/mysql/mysqld.log가 아니라면 적절하게 수정해준다.
     102* /etc/my.cnf.d/server-tls.cnf
     103 - MariaDB 접속을 암호화하려면 추가한다.
     104
     105=== 2.4. MariaDB 시작 ===
     106{{{
     107# systemctl enable --now mariadb
     108}}}
     109
     110=== 2.5. 스키마 업데이트 ===
     111기본 MariaDB에서 업그레이드 설치한 것이라면 스키마도 업데이트
     112{{{
     113# mysql_upgrade -u root -p
     114}}}
     115
     116
     117=== 2.6. 배포판 패키지와 차이점 ===
     118||'''구분'''||'''배포판'''||'''MariaDB'''||
     119||패키지 이름||mariadb-server||MariaDB-server||
     120||서버 설정 파일||/etc/my.cnf.d/mariadb-server.cnf||/etc/my.cnf.d/server.cnf||
     121||로그 디렉토리||/var/log/mariadb||없음||
     122||로그 파일||/var/log/mariadb/mariadb.log||없음||
     123||logrotate 설정 파일 위치||/etc/logrotate.d/mariadb||/etc/logrotate.d/mysql||
     124||logrotate 설정의 로그 파일 위치||/var/log/mariadb/mariadb.log||/var/lib/mysql/mysqld.log||
     125||PID 디렉토리||/run/mariadb||없음||
     126||PID 파일||/run/mariadb/mariadb.pid||/var/lib/mysql/[hostname].pid||
     127
     128배포판 패키지와 MariaDB 사이트 패키지를 둘다 사용할 때는 관리의 편의를 위하여 다음과 같이 하는 것을 추천한다.
     129- MariaDB 사이트 패키지의 서버 설정 파일을 /etc/my.cnf.d/mariadb-server.cnf로 변경한다.
     130- MariaDB 사이트 패키지의 logrotate 설정 파일을 /etc/logrotate.d/mariadb로 변경한다.
     131- MariaDB 사이트 패키지의 로그 디렉토리와 PID 디렉토리를 tmpfiles.d 를 이용해 /var/log/mariadb/, /run/mariadb/ 로 배포판과 동일하게 만든다.
     132- 로그 파일과 PID 파일을 배포판과 동일하게 정해준다.
     133{{{
     134[mysqld]
     135...
     136log-error=/var/log/mariadb/mariadb.log
     137pid-file=/run/mariadb/mariadb.pid
     138}}}
     139
     140==== 2.6.1. tmpfiles.d ====
     141mariadb repository에서 설치한 MariaDB의 pid 저장 위치를 RHEL 배포판의 저장 위치와 동일하게 변경하기 위해서 pid-file=/run/mariadb/mariadb.pid 로 지정하면 /run/mariadb 디렉토리가 재부팅할 때마다 자동으로 만들어지도록 설정해야 한다.
     142
     143이 때 사용하는 것이 tmpfiles.d 이다. 시스템 설정은 /usr/lib/tmpfiles.d 에, 사용자가 커스터마이징한 설정은 /etc/tmpfiles.d 에 저장한다. 따라서 /usr/lib/tmpfiles.d/mariadb.conf 파일을 /etc/tmpfiles.d/ 디렉토리에 복사하고 다음 내용을 추가하면 된다.
     144{{{
     145d /var/lib/mysql 0755 mysql mysql -
     146# MariaDB의 pid 파일 위치를 RHEL 기본 설정인 /run/mariadb/로 바꾸려면
     147# /run/mariadb 디렉토리가 만들어져 있어야 한다.
     148# RHEL 배포판에서는 이미 지정되어 있으므로 따로 지정할 필요가 없다.
     149# 추가한 이후에는 재부팅하거나 systemd-tmpfiles --create 명령을 내린다.
     150# 자세한 내용은 tmpfiles.d man 페이지 참고.
     151d /run/mariadb 0755 mysql mysql -
     152d /var/log/mariadb 0750 mysql mysql -
     153}}}
     154
     155==== 2.6.2. fail2ban ====
     156fail2ban으로 MariaDB의 로그 파일을 검사하고 있다면, fail2ban 설정도 확인해야 한다.
     157
     158
     159== 3. 윈도우즈 버전 ==
     160윈도우 버전의 MariaDB는 다음 위치에서 순서대로 설정 파일을 찾는다. 이 순서는 mysqld --help 또는 mysqld --verbose --help 명령으로 알아볼 수 있다.
     161
     1621. MariaDB 서비스를 시작할 때 명령행에서 --defaults-file=# 옵션으로 지정한 파일. (리눅스도 마찬가지)
     1631. %SYSTEMROOT%\my.ini (예) C:\WINDOWS\my.ini
     1642. %SYSTEMROOT%\my.cnf  (예) C:\WINDOWS\my.cnf
     1653. %SYSTEMDRIVE%\my.ini  (예) C:\my.ini
     1664. %SYSTEMDRIVE%\my.cnf   (예) C:\my.cnf
     1675. MariaDB 설치 폴더\my.ini (예) C:\Program Files\MariaDB 10.3\my.ini
     1686. MariaDB 설치 폴더\my.cnf (예) C:\Program Files\MariaDB 10.3\my.cnf
     1697. MariaDB 데이터 폴더\my.ini (예) C:\Program Files\MariaDB 10.3\data\my.ini
     1708. MariaDB 데이터 폴더\my.cnf (예) C:\Program Files\MariaDB 10.3\data\my.cnf
     171
     172<주의> MariaDB 서비스를 시작할 때 명령행에서 --defaults-extra-file=# 옵션으로 지정한 파일은 위 설정 파일을 읽은 후 추가로 읽는다.. (리눅스도 동일)
     173
     174윈도우 설치 프로그램이 MariaDB 데이터 폴더\my.ini 파일을 만들기 때문에 특별한 일이 없는한 MariaDB 데이터 폴더\my.ini 파일을 설정 파일로 사용하는 것을 권장한다.
     175
     176=== 3.1. 리눅스 설정과 달라지는 점 ===
     177* socket
     178 - 윈도우에서는 유닉스의 소켓 파일에 해당하는 네임드 파이프가 있으나 대부분 TCP/IP보다 느리다. 따라서 굳이 지정할 필요가 없다.
     179* 로그 파일 위치는 권한 문제 때문에 MariaDB 데이터 폴더로 지정하는 것이 편하다.
     180{{{
     181[mysqld]
     182datadir=C:/Program Files/MariaDB 10.3/data
     183log-error=C:/Program Files/MariaDB 10.3/data/mariadb.log
     184pid-file=C:/Program Files/MariaDB 10.3/data/mariadb.pid
     185}}}
     186----
     187[WikiStart 처음으로]
     188