[[PageOutline]] = 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" }}} 다른 하나는 다음과 같다. [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 파일을 만들어준다. {{{ # 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-server||MariaDB-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=# 옵션으로 지정한 파일. (리눅스도 마찬가지) 1. %SYSTEMROOT%\my.ini (예) C:\WINDOWS\my.ini 2. %SYSTEMROOT%\my.cnf (예) C:\WINDOWS\my.cnf 3. %SYSTEMDRIVE%\my.ini (예) C:\my.ini 4. %SYSTEMDRIVE%\my.cnf (예) C:\my.cnf 5. MariaDB 설치 폴더\my.ini (예) C:\Program Files\MariaDB 10.3\my.ini 6. MariaDB 설치 폴더\my.cnf (예) C:\Program Files\MariaDB 10.3\my.cnf 7. MariaDB 데이터 폴더\my.ini (예) C:\Program Files\MariaDB 10.3\data\my.ini 8. 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 }}} ---- [WikiStart 처음으로]