| | 1 | [[PageOutline]] |
| | 2 | = MariaDB 설치 = |
| | 3 | == 1. 배포판 패키지 == |
| | 4 | === 1.1. 기본 패키지 === |
| | 5 | RHEL 8에 설치되는 mariadb 버전은 10.3이 디폴트다. RHEL 9에 설치되는 mariadb 버전은 10.5가 디폴트다. 디폴트 버전을 설치할 때는 바로 설치하면 된다. |
| | 6 | |
| | 7 | gssapi 로그인을 사용할 것이 아니라면 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 |
| | 24 | Rocky Linux 8 - AppStream |
| | 25 | Name Stream Profiles Summary |
| | 26 | mariadb 10.3 [d] client, galera, server [d] MariaDB Module |
| | 27 | mariadb 10.5 [e] client, galera, server [d] MariaDB Module |
| | 28 | |
| | 29 | Hint: [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 사이트 패키지 == |
| | 40 | https://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 | |
| | 53 | RHEL 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] |
| | 68 | name = MariaDB |
| | 69 | baseurl = http://yum.mariadb.org/10.3/rhel8-amd64 |
| | 70 | module_hotfixes=1 |
| | 71 | gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB |
| | 72 | gpgcheck=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] |
| | 81 | name = MariaDB-10.3.14 |
| | 82 | baseurl=http://yum.mariadb.org/10.3.14/centos7-amd64 |
| | 83 | # alternative: baseurl=http://archive.mariadb.org/mariadb-10.3.14/yum/centos7-amd64 |
| | 84 | gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB |
| | 85 | gpgcheck=1 |
| | 86 | }}} |
| | 87 | |
| | 88 | yum.mariadb.org에서 원하는 마이너 릴리즈가 없다면 archive.mariadb.org에서 찾으면 된다. |
| | 89 | |
| | 90 | === 2.2. MariaDB 설치 === |
| | 91 | {{{ |
| | 92 | dnf 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 | ... |
| | 136 | log-error=/var/log/mariadb/mariadb.log |
| | 137 | pid-file=/run/mariadb/mariadb.pid |
| | 138 | }}} |
| | 139 | |
| | 140 | ==== 2.6.1. tmpfiles.d ==== |
| | 141 | mariadb 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 | {{{ |
| | 145 | d /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 페이지 참고. |
| | 151 | d /run/mariadb 0755 mysql mysql - |
| | 152 | d /var/log/mariadb 0750 mysql mysql - |
| | 153 | }}} |
| | 154 | |
| | 155 | ==== 2.6.2. fail2ban ==== |
| | 156 | fail2ban으로 MariaDB의 로그 파일을 검사하고 있다면, fail2ban 설정도 확인해야 한다. |
| | 157 | |
| | 158 | |
| | 159 | == 3. 윈도우즈 버전 == |
| | 160 | 윈도우 버전의 MariaDB는 다음 위치에서 순서대로 설정 파일을 찾는다. 이 순서는 mysqld --help 또는 mysqld --verbose --help 명령으로 알아볼 수 있다. |
| | 161 | |
| | 162 | 1. MariaDB 서비스를 시작할 때 명령행에서 --defaults-file=# 옵션으로 지정한 파일. (리눅스도 마찬가지) |
| | 163 | 1. %SYSTEMROOT%\my.ini (예) C:\WINDOWS\my.ini |
| | 164 | 2. %SYSTEMROOT%\my.cnf (예) C:\WINDOWS\my.cnf |
| | 165 | 3. %SYSTEMDRIVE%\my.ini (예) C:\my.ini |
| | 166 | 4. %SYSTEMDRIVE%\my.cnf (예) C:\my.cnf |
| | 167 | 5. MariaDB 설치 폴더\my.ini (예) C:\Program Files\MariaDB 10.3\my.ini |
| | 168 | 6. MariaDB 설치 폴더\my.cnf (예) C:\Program Files\MariaDB 10.3\my.cnf |
| | 169 | 7. MariaDB 데이터 폴더\my.ini (예) C:\Program Files\MariaDB 10.3\data\my.ini |
| | 170 | 8. 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] |
| | 182 | datadir=C:/Program Files/MariaDB 10.3/data |
| | 183 | log-error=C:/Program Files/MariaDB 10.3/data/mariadb.log |
| | 184 | pid-file=C:/Program Files/MariaDB 10.3/data/mariadb.pid |
| | 185 | }}} |
| | 186 | ---- |
| | 187 | [WikiStart 처음으로] |
| | 188 | |