WordPress relies on the robust and widely-used MySQL database to store and manage a website’s data. To ensure the best performance, security, and compatibility, it is essential to keep database software up-to-date.
As a part of our managed hosting offering, we will be working towards having all new and existing sites using MySQL 8. This help doc will help you navigate your site(s) MySQL versioning, understanding what has changed between version 8 and version 5.7, and how to test compatibility on your sites.
To check which version of MySQL a site is currently running on, the WordPress Site Health feature can be used (available on sites running WP core version 5.2+).
/wp-admin/site-health.php?tab=debug
)You can test your WordPress website’s compatibility with MySQL 8 on a local computer using Local. This is a free WordPress development tool available to everyone, and includes the Local Connect utility (see the Local Connect help doc for more information). This makes pulling and pushing a site from Flywheel easier than ever. On average, you can use Local to install, connect, and copy your Flywheel site in just 10 minutes.
Local supports several forms of logging to assist with troubleshooting.
Enable Xdebug in Local by toggling Xdebug to On. The log can then be viewed by clicking Details, or with the site running at http://yoursite.local/local-xdebuginfo.php
The PHP error log can be accessed in the Local site’s file system. With the site open in Local, click Go to the site folder. Next, open logs > php > error.log.
Below are changes that may commonly cause issues when upgrading from MySQL 5.7 to 8. This is not a comprehensive list, but may provide further insight into primary areas of impact.
GROUP BY
clauses, requiring that selected columns are functionally dependent on GROUP BY
columns when ONLY_FULL_GROUP_BY
is enabled (which is the default in MySQL 8.0).ONLY_FULL_GROUP_BY
.utf8mb4
from utf8
. This might cause issues with plugins or themes that assume the utf8
character set.PASSWORD()
, ENCRYPT()
, DES_DECRYPT()
, DES_ENCRYPT()
, etc.Q: I need help with making updates to my site. What resources does Flywheel offer?
A: Our Support Team is always available to help answer any questions you may have regarding this upgrade (use code: mysql8
).
If you have any site code-related issues that our team is unable to support, we have an extensive agency partner directory where you can connect with professionals:
Q: What is the timeline for upgrades?
A: MySQL 5.7 to 8.0 upgrades will be performed throughout the remainder of 2024 with the goal of being completed before 2025.
Q: What should I look for to determine if my site is compatible?
A: You may review the MySQL 5.7 – 8.0 change list here for some query language changes that may impact your sites. Comprehensive changes are available directly from MySQL here:
If your site code doesn’t leverage any of the changing or deprecated SQL, and your internal testing against MySQL 8.0 does not surface any issues, it’s highly likely that your site(s) is compatible with the new version.
Most reputable plugins and themes are prepared for MySQL 8, reaching out to plugin developers directly would be the recommended source of truth.
Q: How can we identify errors related to the MySQL upgrades? Will there be any specific logging like with PHP errors or any debugger views we should be monitoring?
A: If PHP code executes a query that is incompatible with MySQL 8.0, you can expect a PHP “Fatal error” log identifying the query that failed.
We recommend using Local as outlined previously in this help doc. Error logs are available in Local, and after the server has been converted those logs are available in the Flywheel app.
Q: Is Local able to test MySQL 8.0 compatibility on multisites?
A: Local is compatible with multisite, though there are a few extra steps for configuration. Please see our guide here on multisite for WordPress in Local: Multisite for WordPress with Local.
Q: Can I use my existing Flywheel account for testing on Local?
A: If you do not have a Local account created, you will need to create one before pulling and pushing sites to your Flywheel account. The Local account and your Flywheel account are separate but can be connected following the instructions outlined here: https://localwp.com/help-docs/local-features/local-connect/. To clarify, you do not need a Flywheel account to use Local.
Q: Is there a limitation on site size for importing into Local?
A: There is no size limitation, though sites over 5GB may be slower. See this help doc for working with large sites in Local: Large sites and Local.
Q: Can I update themes or add plugins to a Local site for testing?
A: Yes! Once you have pulled the site down into Local, you can log in to the backend just like a live WordPress site and upgrade/install new plugins.
Q: Can a Local version of the site be shared and tested with other members of my team or do they have to set it up on their side as well?
A: You can use Local’s Live Link functionality to share the site from your machine if you wish to have others test it – see Live Links – Local for more information.
Q: Can we implement our staging testing workflow on Local?
A: Yes! We recommend downloading the current production version of your site to Local. Then after testing, we recommend that the Local version gets pushed up to your Flywheel Staging site and then to your Flywheel Production site.
Q: How does testing in Local work with large developer teams?
A: Local is a great testing resource for teams! We’d recommend using some form of source control to avoid overwriting changes. See this help doc on using Local with source control – Develop with Local and GitHub.
Q: I have some additional questions not listed here, where should I go?
A: Glad you asked! Our Support Team is always available 24/7 to help answer any questions you may have regarding this upgrade (use code: mysql8
).
If you need help making changes to your site to become compatible with MySQL 8 and would like to consult with an Agency Partner, check out our Agency Directory.
Have a smaller project? Check out Codeable, a premium WordPress development partner.
If you have hired a developer for assistance, you can provide them with this article. Be sure to add them as a Collaborator in your Flywheel app. Learn how here.
If you have any questions our Happiness Engineers are here to help!
New to Flywheel? Start here, we've got all the information you'll need to get started and launch your first site!
View allLearn all about managing your Flywheel user account, Teams and integrations.
View allFlywheel hosting plans include a ton of great features. Learn about how to get a free SSL certificate, set up a staging site, and more!
View allAll the server and setting info you'll need to help you get the most out of your Flywheel hosting plan!
View allTips and tricks for managing your sites on Flywheel, including going live, troubleshooting issues and migrating or cloning sites.
View allLearn more about Growth Suite, our all-in-one solution for freelancers and agencies to grow more quickly and predictably.
Getting started with Growth Suite
Growth Suite: What are invoice statuses?
Growth Suite: What do client emails look like?
Learn more about Managed Plugin Updates, and how you can keep your sites up to date, and extra safe.
Restoring Plugin and Theme Management on Flywheel
Managed Plugin Updates: Database upgrades
Managed Plugin Updates: Pause plugin updates
We can help! Check out our Brand Resources page for links to all of our brand assets.
Brand Resources