개발/서버 플랫폼

MariaDB 설치하기 (with Centos7)

플랜B 2021. 9. 27. 20:11

application을 설치할 때, 보통 yum install ${application} 으로 설치할 것이다.

나는 이 때 두 가지 큰 단점이 있다고 본다.

  1. sudo가 필요하다.
  2. 일반 계정으로 application을 제어하기 어렵다.

그래서 나는 보통 application을 yum으로 설치하는 것보다 소스를 다운로드 받아 직접 빌드 및 설치하는 것을 선호 한다.
아래는 이번에 설치한 MariaDB를 설치한 과정이다.

1. mariadb 다운로드

$ sudo wget https://mirror.wtnet.de/mariadb//mariadb-10.5.11/source/mariadb-10.5.11.tar.gz

2. 필요 패키지 설치

$ sudo yum -y install gcc gcc-c++ libtermcap-devel gdbm-devel iconv flex gmp ncurses-devel cmake.x86_64 libaio libtermcap-devel gdbm-devel iconv flex gmp ncurses-devel cmake.x86_64 libaio zlib-devel gmp-devel gnutls-devel

3. (선택) cmake 설치

  • Makefile을 만들기 위함
  • make & make install 이 가능하다면 패스해도 무방함
$ sudo wget [https://cmake.org/files/v3.3/cmake-3.3.2.tar.Z](https://cmake.org/files/v3.3/cmake-3.3.2.tar.Z)  
$ sudo tar -xzvf ./cmake-3.3.2.tar.Z  
$ cd cmake-3.3.2  
$ sudo ./bootstrap  
$ sudo make
$ sudo make install

4. mariadb 설치

$  mkdir mariadb-build

$ sudo cmake ../mariadb-10.5.11  
    -DWITH\_READLINE=1  
    -DWITH\_SSL=bundled  
    -DWITH\_ZLIB=system  
    -DDEFAULT\_CHARSET=utf8  
    -DDEFAULT\_COLLATION=utf8\_general\_ci  
    -DENABLED\_LOCAL\_INFILE=1  
    -DWITH\_EXTRA\_CHARSETS=all  
    -DWITH\_ARIA\_STORAGE\_ENGINE=1  
    -DWITH\_XTRADB\_STORAGE\_ENGINE=1  
    -DWITH\_ARCHIVE\_STORAGE\_ENGINE=1  
    -DWITH\_INNOBASE\_STORAGE\_ENGINE=1  
    -DWITH\_PARTITION\_STORAGE\_ENGINE=1  
    -DWITH\_BLACKHOLE\_STORAGE\_ENGINE=1  
    -DWITH\_FEDERATEDX\_STORAGE\_ENGINE=1  
    -DWITH\_PERFSCHEMA\_STORAGE\_ENGINE=1  
    -DINSTALL\_SYSCONFDIR=${app-path}/mariadb/etc  
    -DINSTALL\_SYSCONF2DIR=${app-path}/mariadb/etc/my.cnf.d  
    -DMYSQL\_TCP\_PORT=13306  
    -DCMAKE\_INSTALL\_PREFIX=${app-path}/mariadb  
    -DMYSQL\_DATADIR=${data-path}/mariadb  
    -DMYSQL\_UNIX\_ADDR=${app-path}/mariadb/socket/mysql.socket  

$ sudo make
$ sudo make install

5. 설정 수정

  • my.cnf 파일 수정
\[mysqld\] basedir=${app-path}/mariadb datadir=${data-path}/mariadb
  • 에러로그
log-error = ${log-path}/mariadb/error/error.log
  • 바이너리 로그
log-bin=${log-path}/mariadb/binary/binary.log binlog\_cache\_size=2M # 로그 캐시 사이즈
max\_binlog\_size=512M # 로그 최대 사이즈
expire\_logs\_days=7 # 보관 기관
  • DB 사용자 설정하기 ( script )
./scripts/mariadb-install-db --defaults-file=${app-path}/mariadb/etc/my.cnf

6. 서비스 등록 및 DB 시작하기

  • 서비스 파일 작성
$ sudo touch /etc/systemd/system/mariadb.service
  • 서비스 등록
sudo systemctl enable mariadb.service sudo systemctl start mariadb.service

7. 추가 DBMS 내부 작업

  • 첫 설치 후에는 root 계정으로 비밀번호 없이 접근한다.
sudo ./mysql -u root
  • 불필요 계정을 삭제하고, 사용할 아이디와 비밀번호를 생성해준다.
delete from mysql.user where User ='삭제할 아이디';
delete from mysql.db where User ='삭제할 아이디';
flush privileges;

grant all privileges on _._ to '${ID}'@'localhost' identified by '${PASSWORD}';

기타 : 심볼릭 링크 걸기

  • 이렇게 심볼릭 링크를 걸어주게 되면, 버전을 업그레이드 할 때 해당 링크만 연결 / 해제하며 운영할 수 있다.
$ sudo ln -s ${app-path}/mariadb-10.5.11 ${app-path}/mariadb  
반응형