Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Cách chuyển Collation của toàn bộ bảng về utf8_unicode trên MySQL và MariaDB - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Vấn đề ở đây là chúng ta đã vô tình sử dụng một bảng Cơ sở dữ liệu (CSDL) với một bộ Collation và Character Set mặc định, hoặc một bộ Collation và Character Set khác với utf8. Một ví dụ cụ thể có thể là khi chúng ta tạo một trang web WordPress trong một môi trường Docker và sử dụng MySQL. Trong trường hợp này, giá trị mặc định của Collation và Character Set thường là “latin1”.

Tuy nhiên nếu bạn đang tạo 1 website sử dụng tiếng Việt thì bạn nên chuyển về định dạng là

  • Character Set: utf8mb4
  • Collation: utf8mb4_unicode_ci

Cách chuyển Collation & Character Set 1 bảng CSDL

Chúng ta sử dụng câu lệnh SQL ALTER của MySQL & MariaDB

ALTER TABLE wp_users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Cách chuyển Collation & Character Set cho tất cả các bảng CSDL

Nếu bạn có một cơ sở dữ liệu với nhiều bảng và muốn thực hiện thay đổi (ALTER) cho từng bảng, thực hiện từng câu lệnh ALTER một có thể tốn rất nhiều thời gian. Trong trường hợp này, bạn có thể thực hiện theo cách sau:

Sử dụng câu lệnh SQL dưới đây để tạo một loạt câu lệnh ALTER TABLE

SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;')
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = '<schema>' AND TABLE_TYPE != 'VIEW';

Với <schema> là tên CSDL của chúng ta.

Câu lệnh trên sẽ tạo ra tất cả các câu lệnh SQL mà chúng ta mong muốn:

ALTER TABLE wp_commentmeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_comments CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_links CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_options CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_postmeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_term_relationships CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_term_taxonomy CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_termmeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_terms CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_usermeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Cuối cùng bạn chỉ việc copy và cho chạy tất cả các câu lệnh trên cùng 1 lượt là xong.

Kết quả:

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *