본문으로 건너뛰기

[L] MariaDB 설치

💡 요약 정리

  • MariaDB는 MySQL의 오픈소스 브랜치 버전으로 높은 호환성을 제공합니다
  • cmake를 사용하여 소스 컴파일 설치를 진행합니다
  • MySQL 5.5.x와 동일한 설치 절차를 따릅니다
  • Aria, XtraDB 등 새로운 스토리지 엔진을 포함합니다

MariaDB는 MySQL의 또 다른 브랜치 버전으로, 오픈소스 정책을 유지하면서 향상된 기능을 제공하는 관계형 데이터베이스입니다.


1. MariaDB 소개

① MariaDB란?

**MariaDB는 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)**입니다.

주요 특징:

  • MySQL과 동일한 소스 코드 기반
  • GPL v2 라이선스
  • MySQL API 및 명령과 완벽 호환
  • 라이브러리 바이너리 교체 가능

② 개발 배경

오라클이 MySQL을 인수한 후 불확실한 라이선스 상태에 반발하여 만들어졌습니다.

배포 정책:

  • 배포자는 Monty Program AB와 저작권 공유
  • MySQL과의 높은 호환성 유지
  • 교체 가능성(Drop-in replacement) 제공

③ 새로운 스토리지 엔진

Aria:

  • 새로운 저장 엔진
  • 트랜잭션 및 비트랜잭션 엔진 지원

XtraDB:

  • InnoDB를 교체할 수 있는 스토리지 엔진
  • 향상된 성능과 확장성

2. 설치 환경 준비

① 관련 패키지 설치

MariaDB 컴파일에 필요한 개발 도구와 라이브러리를 설치합니다.

# cmake 설치
yum install cmake

# 개발 도구 설치
yum install gcc.x86_64 gcc-c++.x86_64 wget.x86_64 \
    bzip2-devel.x86_64 pkgconfig.x86_64 openssl-devel.x86_64 \
    make.x86_64 man.x86_64 nasm.x86_64 gmp.x86_64 \
    gdbm-devel.x86_64 readline-devel.x86_64 \
    compat-readline43.x86_64 ncurses-devel.x86_64 \
    db4-devel.x86_64 bison* automake* autoconf*

# ncurses 개발 라이브러리 설치
yum install ncurses-devel

필수 패키지 설명:

  • cmake: 빌드 시스템 생성 도구
  • gcc, gcc-c++: C/C++ 컴파일러
  • ncurses-devel: 터미널 UI 라이브러리
  • openssl-devel: SSL/TLS 암호화 라이브러리

3. MariaDB 소스 다운로드

① 소스 파일 다운로드

cd /root/src
wget http://fossies.org/linux/misc/mariadb-5.5.34.tar.gz

참고:

② 압축 해제

tar zxvf mariadb-5.5.34.tar.gz
cd mariadb-5.5.34

4. cmake를 통한 빌드 설정

① cmake 설정 실행

cmake \
  -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 \
  -DCMAKE_INSTALL_PREFIX=/home/mariadb \
  -DMYSQL_DATADIR=/home/mariadb/data

주요 옵션 설명:

기본 설정:

  • -DCMAKE_INSTALL_PREFIX=/home/mariadb: 설치 경로
  • -DMYSQL_DATADIR=/home/mariadb/data: 데이터 디렉토리

문자셋 설정:

  • -DDEFAULT_CHARSET=utf8: 기본 문자셋 UTF-8
  • -DDEFAULT_COLLATION=utf8_general_ci: 정렬 규칙
  • -DWITH_EXTRA_CHARSETS=all: 모든 문자셋 지원

스토리지 엔진:

  • -DWITH_ARIA_STORAGE_ENGINE=1: Aria 엔진 활성화
  • -DWITH_XTRADB_STORAGE_ENGINE=1: XtraDB 엔진 활성화
  • -DWITH_INNOBASE_STORAGE_ENGINE=1: InnoDB 엔진 활성화

② 컴파일 및 설치

make -j4
make install

옵션 설명:

  • -j4: 4개의 CPU 코어를 사용하여 병렬 컴파일
    • 시스템 코어 수에 맞게 조정 가능

예상 소요 시간:

  • 컴파일: 약 10-30분 (시스템 사양에 따라 다름)

5. MariaDB 사용자 및 권한 설정

① mysql 그룹 및 사용자 생성

# mysql 그룹 생성
groupadd -g 27 -o -r mysql

# mysql 사용자 생성
useradd -M -g mysql -o -r \
  -d /home/mariadb/data \
  -s /bin/false \
  -c "MariaDB" \
  -u 27 mysql

매개변수 설명:

  • -M: 홈 디렉토리 생성 안 함
  • -g mysql: mysql 그룹에 속함
  • -r: 시스템 계정
  • -d /home/mariadb/data: 데이터 디렉토리
  • -s /bin/false: 로그인 셸 없음 (보안)

② 디렉토리 권한 설정

# 그룹 소유권 변경
chgrp -R mysql /home/mariadb

# 데이터 디렉토리 소유권 변경
chown -R mysql /home/mariadb/data

# MariaDB 디렉토리 소유권 변경
chown mysql:mysql /home/mariadb

③ 데이터베이스 초기화

cd /home/mariadb
sh /home/mariadb/scripts/mysql_install_db

기능:

  • 시스템 데이터베이스 생성
  • 기본 권한 테이블 생성
  • root 계정 초기화

④ 최종 권한 설정

chown -R mysql:mysql /home/mariadb/data

6. 설정 파일 구성

① 설정 파일 복사

# 시작 스크립트 복사
cp -a /home/mariadb/support-files/mysql.server /etc/init.d/mysqld

# 설정 파일 복사
cp -a /home/mariadb/support-files/my-small.cnf /etc/my.cnf

설정 파일 종류:

  • my-small.cnf: 작은 규모 (RAM < 64MB)
  • my-medium.cnf: 중간 규모 (RAM ~128MB)
  • my-large.cnf: 큰 규모 (RAM ~512MB)
  • my-huge.cnf: 매우 큰 규모 (RAM 1-2GB)

② 시작 스크립트 수정

vi /etc/init.d/mysqld

수정 내용:

basedir=/home/mariadb
datadir=/home/mariadb/data

③ 실행 권한 설정

chmod +x /etc/init.d/mysqld

7. 라이브러리 심볼릭 링크 설정

① lib64 심볼릭 링크 생성

cd /home/mariadb
ln -sf lib lib64

목적:

  • 64비트 시스템 호환성
  • 라이브러리 경로 통일

8. MariaDB 실행

① MariaDB 시작

/home/mariadb/bin/mysqld_safe &

출력 예시:

131223 19:45:45 mysqld_safe Starting mysqld daemon with databases from /home/mariadb/data

② 프로세스 확인

ps aux | grep mysqld

정상 실행 시:

mysql    12345  0.0  2.5  123456  78910 ?  Sl  19:45  0:00 /home/mariadb/bin/mysqld

9. MariaDB 접속 확인

① 기본 접속

/home/mariadb/bin/mysql

또는 PATH 설정 후:

mysql

정상 접속 시:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 1
Server version: 5.5.34-MariaDB Source distribution

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

② 버전 확인

SELECT VERSION();

출력:

+--------------------+
| VERSION()          |
+--------------------+
| 5.5.34-MariaDB     |
+--------------------+

10. 환경 변수 설정

① PATH 설정

vi /etc/profile

추가 내용:

export PATH=$PATH:/home/mariadb/bin

② 라이브러리 경로 설정

vi /etc/ld.so.conf.d/mariadb.conf

추가 내용:

/home/mariadb/lib

적용:

ldconfig

11. 자동 시작 설정

① 부팅 시 자동 시작 등록

chkconfig --add mysqld
chkconfig mysqld on

② 시작 레벨 확인

chkconfig --list mysqld

출력:

mysqld  0:off  1:off  2:on  3:on  4:on  5:on  6:off

12. 초기 보안 설정

① root 패스워드 설정

/home/mariadb/bin/mysqladmin -u root password 'new_password'

② 보안 스크립트 실행

/home/mariadb/bin/mysql_secure_installation

설정 항목:

  • root 패스워드 설정
  • 익명 사용자 삭제
  • 원격 root 로그인 금지
  • test 데이터베이스 삭제
  • 권한 테이블 새로고침

13. 서비스 제어

① 시작

/etc/init.d/mysqld start
# 또는
service mysqld start

② 정지

/etc/init.d/mysqld stop
# 또는
service mysqld stop

③ 재시작

/etc/init.d/mysqld restart
# 또는
service mysqld restart

④ 상태 확인

/etc/init.d/mysqld status
# 또는
service mysqld status

14. 문제 해결

① 컴파일 실패

원인:

  • 필수 패키지 미설치

해결:

yum install cmake gcc gcc-c++ ncurses-devel

② 시작 실패

원인:

  • 권한 문제
  • 데이터 디렉토리 초기화 안 됨

해결:

chown -R mysql:mysql /home/mariadb/data
sh /home/mariadb/scripts/mysql_install_db

③ 접속 실패

원인:

  • 소켓 파일 경로 불일치

해결:

# /etc/my.cnf 확인
[client]
socket=/home/mariadb/data/mysql.sock

[mysqld]
socket=/home/mariadb/data/mysql.sock

참고 자료