Character sets are a crucial aspect of databases. They dictate how text is stored and how data comparison operations are performed. MySQL 8.0 brought about a significant change by shifting its default character set from
utf8mb4. This alteration can create compatibility issues with WordPress, especially older versions, which may expect the
utf8 character set.
One common symptom of this issue is the following PHP error when using PHP 7.4 and above: "Your PHP installation appears to be missing the MySQL extension which is required by WordPress". When downgrading to PHP 5.6, users may encounter a different error: "Error establishing a database connection".
As a hosting provider, we highly recommend using PHP 7.4 and above for security and performance reasons. However, when using these PHP versions with MySQL 8.0, there may be some compatibility issues with older WordPress sites. In this article, we'll guide you on how to resolve these issues.
Symptoms of the Problem:
When using PHP 7.4 or above, the error message appears: "Your PHP installation appears to be missing the MySQL extension which is required by WordPress".
When using PHP 5.6, a different error message shows up: "Error establishing a database connection".
The Solution: Convert Database Character Set to utf8mb4
To resolve this issue, you'll need to convert your WordPress database to use the
utf8mb4 character set. Before proceeding, ensure you've taken a complete backup of your database to avoid any accidental data loss.
Steps to Convert Database Character Set to utf8mb4:
Create a Backup: Backup your existing WordPress database from the cPanel. You can do this by navigating to the "Backup" section in cPanel and downloading a backup of your MySQL database.
Modify wp-config.php: Connect to your website via FTP or the cPanel file manager and edit the
wp-config.phpfile. Add or modify the following lines:
- Convert Database Tables: For each table in your WordPress database, you'll need to convert it to use the
utf8mb4character set. You can do this via phpMyAdmin in cPanel:
- Open phpMyAdmin from cPanel.
- Select your WordPress database.
- Click on the SQL tab.
- For each table in your database, run the following SQL command:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
table_name with the name of your table. You can find all your tables listed on the left side of the phpMyAdmin interface.
Keeping your software up-to-date is vital for compatibility and security reasons. This guide aims to help you fix the character set compatibility issue between WordPress and MySQL 8.0. Always make a complete backup before attempting any changes, and if you encounter any issues beyond your expertise, don't hesitate to reach out to our support team.
Please note, as a hosting provider, we always strive to offer the latest technologies to our customers. This means, we cannot support downgrading MySQL versions or changing MySQL's default character set. The steps above provide the best method to update your existing WordPress databases to work correctly with MySQL 8.0.