Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีย้ายฐานข้อมูลจาก MySQL ไป MariaDB บน Linux

พื้นหลัง

หลัง Oracle ซื้อ MySQL ชุมชนพัฒนา MariaDB เป็น Drop-in Replacement ที่ Open Source จริง และ Relative Compatibility สูง มากับ MySQL การ Migrate จึงตรงไปตรงมา

Distro หลัก (RHEL, CentOS, Fedora) เปลี่ยนมาใช้ MariaDB เป็น Default แล้ว

ขั้นตอนการ Migrate

1. เตรียมข้อมูลทดสอบ (Optional)

# 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));
mysql> INSERT INTO tab1 VALUES('Chandra','Prakash','Kadarla','m'),('Srinvas','Kadarla','Chary','m');
mysql> QUIT;

2. Backup MySQL Database

# mysqldump --all-databases --user=root --password --master-data > backupDB.sql
# cp /etc/mysql/my.cnf /opt/my.cnf.bak  # Backup Config

3. Uninstall MySQL

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

4. ติดตั้ง MariaDB

เพิ่ม Repository (CentOS 7 ตัวอย่าง):

# 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
# yum install MariaDB-server MariaDB-client

5. คืนค่า Config และ Start Service

# cp /opt/my.cnf /etc/mysql/
# service mariadb start

6. Import Database

# mysql -u root -p < backupDB.sql

7. ตรวจสอบข้อมูล

# mysql -u root -p
MariaDB> SHOW DATABASES;
MariaDB> USE test1;
MariaDB> SELECT * FROM tab1;
+---------+---------+---------+------+
| name    | owner   | species | sex  |
+---------+---------+---------+------+
| Chandra | Prakash | Kadarla | m    |
| Srinvas | Kadarla | Chary   | m    |
+---------+---------+---------+------+

ข้อควรพิจารณาเพิ่มเติม

  • Version Compatibility: MariaDB 10.x ≈ MySQL 5.7/8.0 ตรวจสอบ Release Notes
  • Storage Engines: MariaDB มี Engine เพิ่ม (ColumnStore, Spider, MyRocks)
  • Authentication: MariaDB ใช้ unix_socket plugin default (root login ไม่ต้อง Password บน localhost)
  • Configuration: ไฟล์ Config อาจต่างชื่อ/ตำแหน่ง (/etc/my.cnf.d/)
  • Replication: GTID Implementation แตกต่าง ต้อง Setup ใหม่

MariaDB 10.11+ (Latest LTS) Repository

# curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash
# yum install MariaDB-server MariaDB-client

สรุป

Migration MySQL → MariaDB ทำได้ง่ายด้วย mysqldump + リストア เนื่องจาก Binary Compatibility สูง แต่วิธีที่ดีที่สุดคือทดสอบบน Staging Environment ก่อน Production เสมอ