Tag Archives: MariaDB

Mac 환경에서 MariaDB 설치하기

현재 맥북에서 개발을 진행하고 있습니다. MySQL을 설치해서 개발중에 있다가 MariaDB와 MySQL의 생각이상의 호환성을 보며 맥에 설치되어있는 MySQL을 삭제하고 MariaDB를 설치하기로 하였습니다. 글은 MySQL 삭제와 MariaDB 설치 2단계로 작성할 생각이고 Homebrew가 설치된 환경에서 진행하였습니다.

MySQL 삭제

다음의 명령을 사용하여 설치되어있는 MySQL을 삭제할 수 있습니다. MySQL이 설치되어있지 않다면 이 과정은 생략하시기 바랍니다.

$ brew unlink mysql
Unlinking /usr/local/Cellar/mysql/5.6.15... 106 links removed

$ brew remove mysql
$ brew cleanup

MariaDB 설치

다음의 명령을 사용하여 정말 쉽게 설치를 할 수 있습니다.

$ brew update
$ brew install mariadb
==> Downloading http://ftp.osuosl.org/pub/mariadb/mariadb-5.5.34/kvm-tarbake-jaunty-x86/mariadb-5.5.
Already downloaded: /Library/Caches/Homebrew/mariadb-5.5.34.tar.gz
==> cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/mariadb/5.5.34 -DCMAKE_FIND_FRAMEWORK=LAST -DCM
==> make
==> make install
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

To connect:
    mysql -uroot

To have launchd start mariadb at login:
    ln -sfv /usr/local/opt/mariadb/*.plist ~/Library/LaunchAgents
Then to load mariadb now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
Or, if you don't want/need launchctl, you can just run:
    mysql.server start
==> /usr/local/Cellar/mariadb/5.5.34/bin/mysql_install_db --verbose --user=dennis --basedir=/usr/loc
==> Summary
  /usr/local/Cellar/mariadb/5.5.34: 483 files, 111M, built in 2.0 minutes

설치 과정에서 나오는 설명을 잘 보면 친절하게 설명이 되어있습니다만 맥이 부팅될때 자동으로 MariaDB를 구동하려면 다음과 같이 등록해 주면 됩니다.

$ ln -sfv /usr/local/opt/mariadb/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist

하지만 저는 매번 실행할 필요 없이 필요할때만 구동하면 되겠기에 위의 과정을 생략하고 필요할때마다 다음의 명령을 실행하여 MariaDB를 구동하고 있습니다.

$ mysql.server start
Starting MySQL
.. SUCCESS!

[CentOS] MySQL to MariaDB Migration

기존에 MySQL을 5년이상 운영해오던 개인서버의 DB를 MariaDB로 변경하기로 하였습니다. 정말 신기할 정도로 다양한 MySQL기반의 웹서비스들을 구동중이던 서버에서 아무런 사이드이펙트 없이 마이그레이션이 가능했습니다. yum 기반에서 운영중인 CentOS를 기준으로 글을 작성하였습니다.

스크린샷 2014-01-06 오후 9.49.10

[링크]에 방문하여 자신의 배포본에 적당한 yum 설정을 찾은 뒤 /etc/yum.repos.d/ 안에 MariaDB.repo 파일을 생성하여 내용을 붙여넣기 합니다.

# MariaDB 5.5 CentOS repository list - created 2014-01-06 12:49 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos5-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

이제 기존에 설치된 mysql을 삭제합니다. APM 환경일 경우 의존성이 있는 mysql-devel, php-mysql도 함께 삭제 됩니다.

$ yum remove mysql mysql-manual

삭제시에 기존의 설정파일인 /etc/my.cnf파일이 /etc/my.cnf.rpmsave로 바뀌어 저장되므로 /etc/my.cnf로 되돌려 줍니다. 이후에 필요한 MariaDB 패키지들을 설치해줍니다.

$ yum install MariaDB-client MariaDB-common MariaDB-compat MariaDB-devel MariaDB-server MariaDB-shared php-mysql

위의 명령을 통해 모든 필요한 MariaDB 패키지들의 설치가 완료됩니다. 기존의 MySQL에서 사용했던 설정파일을 그대로 사용해도 MariaDB에서 문제 없이 동작합니다. 하지만 한가지 생각해 볼 부분이 있는데 MariaDB는 내부 스토리지 엔진으로 MyISAM대신에 Aria를 사용합니다.

그러므로 기존의 설정의 key_buffer_size(key_buffer)와 동일한 값으로 aria-pagecache-buffer-size의 값을 설정해줄 필요가 있습니다. 만약 기존에 MyISAM 테이블을 사용하지 않고 있었다면 key_buffer_size64K정도의 매우 낮은 값으로 설정해 두길 권장합니다.

이제 MariaDB를 구동해봅시다. 이상하리만치 MySQL의 그것과 동일합니다.

$ /etc/init.d/mysql start

MariaDB 콘솔에 접속해 봅시다.  그 명령어조차 mysql입니다.

$ mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3662205
Server version: 5.5.34-MariaDB MariaDB Server

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)]>

일반적으로 아무런 문제없이 마이그레이션 작업이 끝납니다만 작은 오류가 발생할수도 있는데 이경우 mysql_upgrade를 실행해 주면 테이블 포맷등의 변동 사항을 업그레이드해줍니다.

참고 자료