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’
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