Melakukan migrasi database dari MySQL ke MariaDB merupakan langkah umum bagi developer yang membutuhkan performa lebih cepat atau ingin berpindah ke sistem yang sepenuhnya open source. Proses migrasi ini sebenarnya tidak terlalu sulit karena MariaDB memang dirancang kompatibel dengan MySQL. Namun, jika tidak dilakukan dengan benar, Anda bisa mengalami error berupa data hilang, struktur tabel rusak, atau server tidak dapat membaca file dump. Agar hal ini tidak terjadi, artikel ini memberikan panduan migrasi database dari MySQL ke MariaDB secara aman, mudah, dan bebas error.
Mengapa Banyak Developer Migrasi ke MariaDB?
Sebelum migrasi, penting memahami alasan mengapa banyak developer dan perusahaan memilih MariaDB:
1. MariaDB lebih cepat pada query berat
Optimizer baru dan engine tambahan membuat performanya lebih baik pada database besar.
2. Lebih banyak fitur gratis
MariaDB menyediakan banyak fitur enterprise secara gratis—audit log, thread pool, storage engine ekstra.
3. 100% open source
Tidak ada fitur yang dikunci di balik lisensi berbayar.
4. Drop-in replacement MySQL
Migrasi dari MySQL ke MariaDB umumnya sangat mudah dan tidak memerlukan konversi khusus.
Karena alasan inilah migrasi database dari MySQL ke MariaDB kini menjadi pilihan populer di dunia backend.
Persiapan Sebelum Migrasi
Migrasi yang aman harus dimulai dari persiapan matang. Berikut hal penting yang harus dilakukan:
a. Pastikan versi kompatibel
-
Jika MySQL Anda versi 5.7, gunakan MariaDB minimal 10.2.
-
Jika MySQL Anda versi 8.0, gunakan MariaDB minimal 10.6.
Lebih tinggi lebih baik, asalkan stabil.
b. Backup database sebelum migrasi
Jangan pernah migrasi tanpa backup!
Gunakan perintah:
mysqldump -u root -p --all-databases > backup-mysql.sql
c. Catat konfigurasi MySQL sebelumnya
Simpan file konfigurasi my.cnf karena beberapa setting Anda mungkin ingin digunakan juga di MariaDB.
d. Pastikan tidak ada query aktif
Pada server produksi, lakukan maintenance downtime singkat agar tidak ada transaksi tertinggal.
Cara Export Data dari MySQL
Langkah pertama migrasi adalah mengekspor database dari MySQL.
Dump seluruh database:
mysqldump -u root -p --all-databases --routines --events --triggers > mysql-backup.sql
Tambahkan opsi:
-
--routines→ untuk function & procedure -
--events→ untuk event scheduler -
--triggers→ untuk trigger
Jika hanya satu database:
mysqldump -u root -p nama_database > db.sql
Pastikan file backup tidak kosong dan ukurannya masuk akal.
Install MariaDB di Server
Setelah backup selesai, waktunya menginstal MariaDB.
Linux (Ubuntu/Debian):
sudo apt update sudo apt install mariadb-server
CentOS/RHEL:
sudo yum install mariadb-server
Windows:
Unduh installer resmi dari MariaDB Foundation.
Setelah instalasi, jalankan MariaDB:
sudo systemctl start mariadb sudo systemctl enable mariadb
Lakukan hardening dasar:
mysql_secure_installation
Import Database ke MariaDB Tanpa Error
Setelah MariaDB siap, kini saatnya mengimpor backup dari MySQL.
Import database MySQL ke MariaDB:
mysql -u root -p < mysql-backup.sql
Jika databasenya banyak, proses ini bisa memakan waktu lama, tergantung ukuran data.
Tips agar tidak error saat impor:
1. Abaikan compatibility warning
MySQL 8.0 memiliki beberapa format metadata baru yang kadang tidak dikenali MariaDB.
Solusi: edit file .sql dan hapus baris seperti:
SET @@GLOBAL.GTID_PURGED
2. Jika muncul error “unknown system variable”
Ini berarti ada variabel MySQL yang tidak didukung MariaDB.
Solusi: hapus line yang mengandung variabel tersebut.
3. Pastikan engine yang dipakai kompatibel
Jika Anda menggunakan engine MySQL seperti:
-
MyRocks
-
NDB Cluster
-
InnoDB khusus Oracle
Pastikan engine tersebut tersedia di MariaDB (atau ganti engine).
Mengubah Konfigurasi Agar Sesuai MariaDB
Beberapa konfigurasi MySQL mungkin tidak dapat diterapkan di MariaDB.
Misalnya:
-
mysqlx -
caching_sha2_password -
validate_password.policy
Sesuaikan konfigurasi Anda dengan mengecek MariaDB variables:
SHOW VARIABLES;
Jika ingin memindahkan konfigurasi dari MySQL, pindahkan hanya setting yang aman seperti:
-
buffer size
-
max connection
-
log settings
-
character set
Uji Koneksi dan Jalankan Aplikasi
Setelah import berhasil, lakukan pengujian:
a. Login ke MariaDB
mysql -u root -p
b. Cek database
SHOW DATABASES;
c. Jalankan query dasar
Pastikan tidak ada tabel korup atau error.
d. Hubungkan aplikasi Anda
Coba jalankan file PHP atau backend Anda:
$mysqli = new mysqli("localhost", "user", "password", "db");
Jika aplikasi berjalan normal, migrasi database Anda berhasil.
Masalah Umum Saat Migrasi & Cara Mengatasinya
Berikut beberapa error umum dan solusinya:
1. ERROR 1031: Table storage engine mismatch
Sebab: engine MySQL tidak ada di MariaDB.
Solusi: ubah engine tabel.
ALTER TABLE nama ENGINE=InnoDB;
2. ERROR 1118: Row size too large
Sebab: MariaDB memakai ukuran row berbeda.
Solusi: aktifkan penyimpanan row dynamic.
SET GLOBAL innodb_default_row_format = dynamic;
3. ERROR “Unknown collation utf8mb4_0900_ai_ci”
Collation ini hanya ada di MySQL 8.
Solusi: ubah ke utf8mb4_general_ci atau utf8mb4_unicode_ci di file dump SQL.
4. ERROR “GTID mode not supported”
MariaDB tidak mendukung format GTID MySQL.
Solusi: hapus semua baris:
SET @@GLOBAL.GTID_PURGED
Testing Performansi Setelah Migrasi
Lakukan benchmark kecil:
Hitung waktu query:
SET PROFILING=1; SELECT * FROM tabel_besar; SHOW PROFILES;
Test concurrency (opsional):
Gunakan tool seperti:
-
sysbench
-
mariadb-bench
Jika MariaDB lebih cepat, berarti migrasi Anda sukses.
Kesimpulan
Migrasi database dari MySQL ke MariaDB sebenarnya sangat mudah jika dilakukan dengan langkah yang benar. Dengan kompatibilitas tinggi, MariaDB menjadi pilihan ideal bagi developer yang menginginkan performa cepat, fitur lengkap, dan lisensi sepenuhnya open source. Persiapan yang matang, backup lengkap, dan penyesuaian kecil pada konfigurasi akan memastikan migrasi berjalan lancar tanpa error.
Dengan mengikuti panduan ini, Anda bisa memindahkan database dari MySQL ke MariaDB secara aman dan efektif, baik untuk aplikasi kecil hingga sistem berskala besar.