Masalah Unknown collation: ‘utf8mb4_0900_ai_ci’ pada MySQL

Permasalahan

  • export database dari MySQL versi baru, untuk diimport ke database MySQL versi lama. Muncul pesan kesalahan “ERROR 1273 (HY000) at line 78: Unknown collation: ‘utf8mb4_0900_ai_ci'”

Penyebab:

  • MySQL versi baru menggunakan collation utf8mb4_0900_ai_ci yang tidak dikenal di MySQL versi lama

Solusi:

Edit file dump

Edit file dump database dengan mengganti string berikut ini:

  • Ganti string “utf8mb4_0900_ai_ci” menjadi “utf8_general_ci”
  • Ganti string “CHARSET=utf8mb4” menjadi “CHARSET=utf8”

Jika file dump database besar sekali (ratusan mega atau beberapa giga), editor teks biasanya tidak sanggup membaca file tersebut. Untuk itu kita bisa menggunakan program ‘sed’ di Linux:


# sed -i 's/utf8mb4_0900_ai_ci/utf8_general_ci/g' dump.sql
# sed -i 's/CHARSET=utf8mb4/CHARSET=utf8/g' dump.sql

Ubah Collation Database

Cara lain adalah dengan cara mengubah collation di database/tabel tersebut

ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ALTER TABLE artikel MODIFY url title(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Referensi

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *