Database Collation Fix

Convert tables using utf8mb4_unicode_520_ci or utf8_unicode_520_ci collation to a more portable Collation Algorithm.

Author:Dave Jesch (profile at wordpress.org)
WordPress version required:4.6
WordPress version tested:6.4.2
Plugin version:1.2.10
Added to WordPress repository:22-04-2017
Last updated:17-01-2024
Rating, %:100
Rated by:18
Plugin URI:
Total downloads:20 586
Active installs:1 000+
plugin download
Click to start download

Since version 4.2, WordPress has been detecting the MySQL version and if it’s version 5.5.3 or greater, automatically selecting the ‘utf8mb4_unicode_520_ci’ Collation Algorithm. This works well until you need to migrate your database to an older version of MySQL that does not support the utf8mb4 algorithms. Then, you run into the error message: “#1273 – Unknown collation: ‘utf8mb4_unicode_520_ci'” when importing your database.

With the WordPress 5.7 update and WooCommerce 5.1, some users are reporting an error: “SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8mb4_unicode_520_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT)”. The Database Collation Fix tool also fixes this issue by changing the collation of all columns in your database to use the same algorithm, removing the “mix” of collations.

Usage Scenarios:

While the plugin will work in any WordPress install: local, staging or live, it is specially designed to work with DesktopServer. Its process will be triggered and change the collation types on all database tables during any DesktopServer Create Site, Copy Site, Move Site, Import and Export operations. This allows you to import and export sites in the most compatible ways during deployments. If you would like to use this with DesktopServer as a Design Time plugin, you can install this in your /xampplite/ds-plugins/ directory and it can then be automatically activated and used with all of your local development web sites.

Alternatively, you can install this as a regular WordPress plugin on any site. Once activated, all of your database tables will be updated to use the more portable Collation Algorithm. If you are migrating your web site, you can install and activate the plugin then perform your database export. Once you have migrated your site, you can deactivate and remove the plugin as it would be no longer needed. If you will be exporting and/or migrating your site repeatedly, such as when using it on a test or staging install, you can leave the plugin active indefinitely and it will continue to monitor and update your database tables automatically, allowing you to perform migrations at any time. This is ideal in situations where you are installing or testing plugins that may create their own database tables, as these tables may be created with the newer Collation Algorithms that are not as portable.

How it Works:

The Database Collation Fix tool converts database tables using ‘utf8mb4_unicode_520_ci’ or ‘utf8_unicode_520_ci’ Collation Algorithms to a more portable ‘utf8mb4_unicode_ci’ collation on a once daily basis. It also modifies any column-specific collation statements, not just the default table collation. This means that you can install this plugin and it will continue to monitor all of your database tables and convert them to the more portable Collation Algorithm automatically.

This tool will convert your database tables and columns to use the ‘utf8mb4_unicode_ci’ Collation Algorithm. This can be modified to any other Collation Algorithm you wish by updating your wp-config.php file and adding or changing the following setting:

define('DB_COLLATE', 'utf8_general_ci');

You can use ‘utf8_general_ci’ or ‘utf8’ or any other Collation Algorithm supported by your database. See https://dev.mysql.com/doc/refman/5.7/en/charset-mysql.html for a full description of MySQL’s Character Set and Collation Algorithm selections.

Support:

Support Details: We are happy to provide support and help troubleshoot issues. Visit our Contact page at http://davejesch.com/contact/ or submit a support request on the WordPress plugin page.

We are not responsible for any loss of data that may occur as a result of using this tool. We strongly recommend performing a site and database backup before testing and using this tool. However, should you experience such an issue, we want to know about it right away.


FAQ
ChangeLog