Saat melakukan migrasi atau import database MySQL, seringkali kita menemukan berbagai macam error. Salah satu yang cukup sering ditemui adalah “unknown collation: ‘utf8mb4_0900_ai_ci'” saat import database. Masalah ini biasanya terjadi ketika kita memindahkan database dari versi MySQL yang lebih baru (seperti MySQL 8.0) ke versi yang lebih lama (seperti MySQL 5.7 atau lebih rendah). Untuk mengatasi masalah ini, kita harus memahami mengapa error ini bisa muncul dan bagaimana cara memperbaikinya.
Pada artikel ini, kita akan membahas penyebab error ini, bagaimana cara memperbaikinya, serta langkah-langkah yang mudah diikuti agar proses import database berjalan lancar.
Penyebab Error utf8mb4_0900_ai_ci
Error “unknown collation: ‘utf8mb4_0900_ai_ci'” biasanya disebabkan oleh perbedaan versi MySQL. Pada MySQL 8.0, kolasi utf8mb4_0900_ai_ci
diperkenalkan sebagai kolasi default untuk karakter utf8mb4
. Namun, jika kita mencoba mengimport database yang menggunakan kolasi ini ke server MySQL versi 5.7 atau sebelumnya, server tidak akan mengenali kolasi tersebut dan menyebabkan error.
Hal ini terjadi karena MySQL 5.7 dan versi sebelumnya tidak memiliki kolasi utf8mb4_0900_ai_ci
. Oleh karena itu, kita perlu mengubah kolasi ini menjadi sesuatu yang dapat dikenali oleh versi MySQL yang lebih lama, seperti utf8mb4_general_ci
atau utf8mb4_unicode_ci
.
Cara Mengatasi Error utf8mb4_0900_ai_ci
Berikut adalah beberapa metode yang dapat Anda gunakan untuk mengatasi masalah ini. Pastikan Anda sudah memiliki akses ke file .sql
database yang ingin diimport.
1. Ubah Kolasi Secara Manual pada File .sql
Cara termudah untuk mengatasi masalah ini adalah dengan membuka file .sql
database Anda dan mengganti semua referensi utf8mb4_0900_ai_ci
dengan kolasi yang didukung oleh versi MySQL Anda.
Langkah-langkah:
- Buka file
.sql
dengan editor teks seperti Notepad++ atau Visual Studio Code. - Gunakan fitur “Find and Replace” (
Ctrl + H
). - Pada kolom “Find”, masukkan
utf8mb4_0900_ai_ci
. - Pada kolom “Replace with”, masukkan
utf8mb4_general_ci
atauutf8mb4_unicode_ci
. - Klik “Replace All” untuk mengganti semua kolasi tersebut.
- Simpan file
.sql
dan coba import kembali database tersebut ke server MySQL Anda.
2. Gunakan Perintah Sed di Terminal (Linux/Mac)
Jika Anda bekerja di lingkungan Linux atau Mac, Anda bisa menggunakan perintah sed
untuk mengganti kolasi secara otomatis. Cara ini lebih cepat terutama jika Anda bekerja dengan file yang sangat besar.
Perintah:
sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g' namafile.sql
Ubah namafile.sql
dengan nama file database Anda. Perintah ini akan mengganti semua instance utf8mb4_0900_ai_ci
dengan utf8mb4_general_ci
di dalam file .sql
.
3. Ekspor Ulang Database dari MySQL 8.0 dengan Kolasi yang Didukung
Jika Anda memiliki akses ke server MySQL 8.0 tempat database asli berada, Anda bisa mencoba untuk mengekspor ulang database dengan kolasi yang lebih kompatibel dengan versi MySQL lama. Anda bisa melakukan ini menggunakan perintah mysqldump
.
Langkah-langkah:
1. Masuk ke MySQL 8.0 server.
2. Ekspor database menggunakan perintah:
mysqldump --default-character-set=utf8mb4 --collation-server=utf8mb4_general_ci -u username -p database_name > namafile.sql
3. Import file yang sudah diekspor ke server MySQL yang lebih lama.
Perintah di atas akan memastikan bahwa kolasi utf8mb4_general_ci
digunakan untuk semua tabel dan kolom di database.
4. Menggunakan phpMyAdmin untuk Mengubah Kolasi
Jika Anda memiliki akses ke phpMyAdmin, Anda bisa mengubah kolasi langsung dari antarmuka ini.
Langkah-langkah:
- Buka phpMyAdmin dan pilih database yang ingin diubah.
- Klik tab “Operations”.
- Pada bagian “Collation”, pilih kolasi yang diinginkan (misalnya,
utf8mb4_general_ci
). - Klik “Go” untuk menyimpan perubahan.
Selain mengubah kolasi database, Anda juga dapat mengubah kolasi individual tabel dan kolom menggunakan tab “Structure” pada tabel.
Kesimpulan
Masalah “unknown collation: ‘utf8mb4_0900_ai_ci'” saat import database biasanya muncul karena ketidakcocokan antara versi MySQL yang digunakan. Dengan mengikuti langkah-langkah di atas, Anda dapat memperbaiki masalah ini dengan mengganti kolasi yang tidak didukung oleh versi MySQL lama menjadi kolasi yang lebih umum seperti utf8mb4_general_ci
. Cara-cara ini cukup mudah diterapkan bahkan untuk pengguna yang belum terlalu berpengalaman dengan MySQL.
Selain itu, selalu pastikan untuk membuat cadangan (backup) database sebelum melakukan perubahan apa pun. Hal ini penting untuk menghindari kehilangan data jika terjadi kesalahan selama proses penggantian kolasi.
Dengan panduan ini, diharapkan Anda dapat mengatasi masalah kolasi MySQL dengan lebih mudah dan cepat. Jika Anda masih menghadapi kendala, pastikan untuk memeriksa dokumentasi MySQL atau menghubungi dukungan teknis untuk mendapatkan bantuan lebih lanjut.