Chuyển đổi MySQL từ utf8mb4 sang utf8

Câu hỏi được đặt ra là sao phải đổi từ utf8mb4 sang utf8? tại sao không để utf8mb4?

Trong WordPress bản mới khi cài đặt mặc định sẽ để utf8mb4 nếu sql của bạn >= 5.5.3 nhưng khi up lên hosting để chạy live thì 1 số hosting chưa nâng cấp mysql vẫn để phiên bản cũ. Vì vậy khi import sql sẽ bị lỗi #1273 – Unknown collation: ‘utf8mb4_unicode_ci’

Để duy trì blog nên mình có làm aff cho 1 số bên hosting. Nhưng dù aff mình cũng chọn 1 số nhà cung cấp uy tín về chất lượng và support nên các bạn cứ yên tâm nhé.

Nếu có mua hosting mà có trong list dưới đây các bạn click vào link trước khi mua để ủng hộ mình nhé. Mình cảm ơn nhiều

Sau đây là cách khắc phục lỗi #1273 – Unknown collation: ‘utf8mb4_unicode_ci’

Lưu ý: Trước khi làm hãy backup toàn bộ sql lại cho chắc ăn nhé

Bước 1: Tạo 1 file php với tên dbconversion.php tại folder chính ngang hàng với wp-admin với nội dung sau

<?php
$dbname = '__YOUR_DATABASE_NAME__';
mysql_connect('__YOUR_DATABASE_HOSTNAME__', '__YOUR_DATABASE_USER__', '__YOUR_DATABASE_PASS__');
mysql_query("ALTER DATABASE `$dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci");
$result = mysql_query("SHOW TABLES FROM `$dbname`");
while($row = mysql_fetch_row($result)) {
 $query = "ALTER TABLE {$dbname}.`{$row[0]}` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci";
 mysql_query($query);
 $query = "ALTER TABLE {$dbname}.`{$row[0]}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
 mysql_query($query);
}
echo 'All the tables have been converted successfully';
?>

Thay lại thông số cho đúng:

__YOUR_DATABASE_NAME__: Tên Database của bạn

__YOUR_DATABASE_HOSTNAME__: Tên host name thường là localhost

__YOUR_DATABASE_USER__: User truy cập của database

__YOUR_DATABASE_PASS__: Mật khẩu của database

Bước 2: Chạy file php trên với đường dẫn yourdomain.com/dbconversion.php

Bước 3: Sau khi chạy xong và thành công thì bạn vào sửa file wp-config.php sửa đoạn define(‘DB_CHARSET’, ‘utf8mb4’); thành define(‘DB_CHARSET’, ‘utf8’);

define(‘DB_CHARSET’, ‘utf8’);

Bước 4: Sau khi đã hoàn thành tất cả các bước trên hãy xóa file dbconversion.php vừa bạn tạo đi nhé

Vậy là đã hoàn thành rồi. Bạn có thể export và import lên hosting mà không hề có lỗi này xuất hiện nữa 😀

Chúc các bạn thành công!

4.2/5 - (5 votes)
Từ khóa: , ,
  • Bình luận
Sản phẩm nổi bật của Toản
x