기존에 MySQL을 5년이상 운영해오던 개인서버의 DB를 MariaDB로 변경하기로 하였습니다. 정말 신기할 정도로 다양한 MySQL기반의 웹서비스들을 구동중이던 서버에서 아무런 사이드이펙트 없이 마이그레이션이 가능했습니다. yum 기반에서 운영중인 CentOS를 기준으로 글을 작성하였습니다.
[링크]에 방문하여 자신의 배포본에 적당한 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_size를 64K정도의 매우 낮은 값으로 설정해 두길 권장합니다.
이제 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를 실행해 주면 테이블 포맷등의 변동 사항을 업그레이드해줍니다.
참고 자료