[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
참고:
- 최신 버전은 MariaDB 공식 사이트에서 확인
② 압축 해제
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
참고 자료
- MariaDB 공식 사이트: 'MariaDB' 바로가기
- MariaDB 문서: 'MariaDB Knowledge Base' 바로가기
- MySQL 호환성: 'MariaDB vs MySQL' 바로가기