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
- Azdigi: Giá rẻ thì dùng gói Pro Gold Hosting còn chất lượng hơn thì em khuyên dùng Business Hosting. Có điều kiện thì lên VPS nhé
- Tino hosting
- iNet
- Nước ngoài thì Vultr
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!
- Bình luận