Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

리눅스에서 MySQL을 MariaDB로 마이그레이션하는 방법 (단계별 완벽 가이드)

MySQL에서 MariaDB로의 마이그레이션은 두 데이터베이스 간의 바이너리 호환성 덕분에 비교적 간단하게 진행할 수 있습니다. 이 글에서는 리눅스 환경에서 MySQL 데이터베이스를 MariaDB로 이전하는 전체 과정을 단계별로 살펴보겠습니다.

오라클(Oracle)이 MySQL을 인수한 이후, 커뮤니티는 이에 대한 대안으로 새로운 데이터베이스인 MariaDB를 개발했습니다. MariaDB는 오픈소스로 공개되어 있으며 MySQL과 높은 호환성을 유지합니다. 실제로 RHEL, CentOS, Fedora 등 대부분의 리눅스 배포판은 이미 MariaDB를 MySQL의 드롭인 대체제(drop-in replacement)로 채택하고 있습니다.

그럼 지금부터 MySQL 데이터베이스를 MariaDB로 마이그레이션하는 방법을 알아보겠습니다.

1. MySQL 데이터베이스 및 테이블 준비

먼저 실습을 위해 테스트용 MySQL 데이터베이스와 테이블을 생성하겠습니다. 이미 운영 환경에 데이터베이스와 테이블이 준비되어 있다면 이 단계는 건너뛰어도 됩니다.

터미널에서 MySQL root 계정으로 로그인합니다.

# mysql -uroot -p

데이터베이스 및 테이블 생성

mysql> Create database test1;
mysql> use test1;
mysql> create table tab1(name varchar(30), owner varchar(30), species varchar(20), sex char(1));
Query OK, 0 rows affected (0.02 sec)

데이터가 정상적으로 이전되는지 확인하기 위해 테스트용 레코드를 추가합니다.

mysql> insert into tab1 values('Chandra','Prakash','Kadarla','m'),('Srinvas','Kadarla','Chary','m');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0

작업이 끝나면 MySQL에서 로그아웃합니다.

2. MySQL 데이터베이스 백업

mysqldump 명령어를 사용해 MySQL 데이터베이스 전체를 백업합니다.

# mysqldump --all-databases --user=root --password --master-data > backupDB.sql

보안을 위해 기존 MySQL 설정 파일도 시스템의 다른 위치에 백업해 둡니다.

# cp /etc/mysql/my.cnf /opt/my.cnf.bak

3. MySQL 패키지 제거

아래 명령어로 MySQL 서비스를 중지한 뒤 관련 패키지를 제거합니다.

# service mysqld stop
# yum remove mysql-server mysql-client mysql-common

4. MariaDB 패키지 설치

MariaDB는 주요 리눅스 배포판의 공식 저장소에서 이미 MySQL을 대체하여 제공되고 있습니다. 구버전 리눅스를 사용 중이라면 공식 저장소를 직접 추가하면 됩니다.

yum 저장소 디렉터리에 새로운 저장소 파일을 생성합니다.

# sudo vi /etc/yum.repos.d/MariaDB.repo

파일에 아래 내용을 추가한 뒤 저장합니다.

[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/5.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

다음 명령어로 MariaDB 서버와 클라이언트를 설치합니다.

# yum install MariaDB-server MariaDB-client

설치 과정에서 perl 관련 라이브러리 등 의존성 패키지들이 함께 설치되며, 기존의 mariadb-libs 패키지는 MariaDB-shared 패키지로 자동 교체됩니다. 설치가 정상적으로 완료되면 마지막에 Complete! 메시지가 출력됩니다.

필요한 패키지 설치가 모두 끝나면 root 계정의 비밀번호를 설정하고, MySQL에서 백업해 둔 설정 파일을 원래 위치로 복원합니다.

# cp /opt/my.cnf /etc/mysql/

이제 MariaDB 서비스를 시작합니다.

# service mariadb start

5. MySQL 데이터베이스 가져오기

MySQL에서 백업해 둔 데이터베이스를 MariaDB로 가져옵니다(import).

# mysql -u root -p < backupDB.sql

root 비밀번호를 입력하면 백업된 데이터베이스가 MariaDB로 임포트됩니다.

6. 마이그레이션 결과 확인

데이터베이스가 정상적으로 복원되었는지 반드시 확인해야 합니다. 아래 명령어를 차례로 실행해 보세요.

# mysql -u root -p
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test1              |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> use test1;
MariaDB [test1]> select * from tab1;
+---------+---------+---------+------+
| name    | owner   | species | sex  |
+---------+---------+---------+------+
| Chandra | Prakash | Kadarla |    m |
| Srinvas | Kadarla | Chary   |    m |
+---------+---------+---------+------+
2 rows in set (0.00 sec)

위와 같이 기존의 데이터베이스, 테이블, 레코드가 그대로 조회되면 마이그레이션이 성공적으로 완료된 것입니다.

마무리

지금까지 소개한 과정을 따라 하면 몇 가지 간단한 단계만으로 MySQL에서 MariaDB로 데이터베이스를 손쉽게 이전할 수 있습니다. MariaDB는 MySQL에 비해 다양한 신규 기능과 개선된 성능을 제공합니다. 이 튜토리얼에서는 마이그레이션 설정을 검증하기 위해 간단한 시나리오를 사용했습니다.

참고로 본문에서 사용한 MariaDB 5.5 버전은 예시이며, 실제 운영 환경에서는 MariaDB 공식 사이트에서 자신의 리눅스 배포판과 버전에 맞는 최신 저장소 정보를 확인하는 것이 좋습니다. 또한 마이그레이션 전에는 반드시 전체 백업을 수행하고, 프로덕션 환경에 적용하기 전에 테스트 환경에서 충분히 검증하시기 바랍니다.