Welcome to Press This, the WordPress community podcast from WMR. Each episode features guests from around the community and discussions of the largest issues facing WordPress developers. The following is a transcription of the original recording.

Powered by RedCircle

Doc Pop: You’re listening to Press This, a WordPress community podcast on WMR. Each week we spotlight members of the WordPress community. I’m your host, Doc Pop. I support the WordPress community through my role at WP Engine and my contributions at Torquemag.io. You can subscribe to Press This on RedCircle, iTunes, Spotify, or your favorite podcasting app. You can also download the episodes directly from WMR.fm.  

Now, on October 31st, MySQL will end support for MySQL version 5.7, and although this date happens to fall on Halloween, there’s no reason for WordPress users to be…scared of this upgrade. It is a big upgrade, and as I understand, 75 percent of WordPress sites are still using MySQL version 5.7. 

Today we’re going to be talking to Carmen Johnson, a platform product manager at WP Engine, about everything you need to know to upgrade your MySQL database, Carmen, how are you doing today?

Carmen Johnson: I am doing fantastic, Doc, thanks for asking.

DP: Awesome, let’s kick this off. I’d like to hear your WordPress origin story before we get into MySQL.

CJ: Definitely, happy to share it. I have to say it’s not super interesting or fascinating, but, my WordPress origin story actually began at WP Engine. So, I had a background in tech. I worked at several different tech companies in Texas, and WP Engine landed on my radar through just folks in my network who I trusted and I’ve worked with previously who just had nothing but the best things to say about WP Engine and our leadership in the WordPress community. So I just wanted to come on over and taste the Kool-Aid, as you can say. And I’ve been doing that for almost five years now.

DP: Awesome, well, congrats. We’re happy to have you in the space and on the show to tell us about WordPress’s upcoming database switch. Is there like a name for this? Is it, I don’t want to be overly dramatic, but it’s not like MySQL 5.7-ageddon or something, right?

CJ: No, no, no, nothing, nothing that, intense. No, it’s just, you know, part of the standard end-of-life upgrade process that many different WordPress technologies have, and it just so happens to be the time for MySQL version 5.7 to have its own end-of-life process.

DP: I’m not sure if all my stats were correct. So feel free to correct me if I got anything wrong. But as I’m looking around, it looks like about 75 percent of WordPress sites are still running MySQL version 5.7. I guess one of the things I wanted to know was—is a MySQL database sort of like WordPress in that I should just normally be keeping it up to date? Like, I always tell people, be on the current version of WordPress, if you can. Is a database something different where people are less likely to be switching all the time?

CJ: Not at all, and if anything, I’d say it’s probably even more critical that you keep your database versions up to date. You know, you’re hosting all of your critical site, housing, rather, all of your critical site information there. So it’s very important that you keep your database versions up to date, whether it’s through, a managed host or D-I-Y, it doesn’t really matter, you know, the, the method, but definitely ensuring that your database is going to be secure and that your information that you’re storing there is going to be secure is super-critical.

DP: And with that, why is MySQL end of life-ing an older version like 5.7?

CJ: Essentially, as I alluded to earlier, it’s, it’s just a part of the lifecycle of technologies like these. So as new technology enhancements are coming out, as we’re discovering more ways that people can, bad actors, rather, can try and infiltrate systems. You know, security remains top of mind and a top priority with different technologies like MySQL. So, with the end of life of 5.7, the newer version, MySQL 8, which has been out for a few years now, definitely incorporates a lot of those different security and feature enhancements that are just going to ensure that your sites are secure and are functioning as optimally as they can.

DP: You mentioned MySQL 8 has been out for a few years. MySQL 8.1 is even out now, is that still like a bleeding edge release, or is that like a stable release that people should be going to?

CJ: Yeah, great question. MySQL 8.1 was released back in July of this year, and as you called it, a bleeding edge release, it is still very, very early in its life cycle. It has not yet reached long-term support, and what long-term support generally means is that any bugs or fixes that need to be addressed have, for the most part, done that. The version has been out for a while. It’s been fairly widely adopted and is stable. MySQL 8.1, with it having just been released a few months ago, hasn’t quite reached that status. So, for that reason, MySQL 8 is the only version that’s fully supported and is in that long-term support status.

DP: So if a WordPress user is going to be upgrading from 5.7 or whatever version they’re on to 8, what steps should they be taking? Like what can you lay out for them for a path to MySQL 8?

CJ: Yeah, so, first thing, you’re definitely gonna want to spin up some sort of dev environment, to test your sites and your database against that new version of MySQL 8.0. And there are many ways you could do this. With WP Engine specifically, you can leverage our Local dev testing environment, and we have lots of documentation available in our support center that can help walk you through exactly how to test your site, the key things you should be looking out for, specific errors and different things that can trigger, how to debug your different PHP and other file types to find errors or different things that may indicate incompatibility with the new version.

Thank you. so that, you know, you could address those and ensure that your sites are ready to go. But even with that testing, whether you’re with a host or not that is, that is a managed host that is providing those capabilities for you, it’s gonna be really critical that you ensure that your sites are gonna be happy and are gonna perform well on the new version before performing an upgrade, just to prevent breakage or any sort of critical site failures, due to not testing.

DP: You mentioned if you’re a WP Engine customer there’s Local support, but Local is available outside of WP Engine. And as I understand it, it’s still like the go-to for local dev testing, right? Like whether or not you’re a WP Engine customer, you probably are going to spin up a local instance to test out the new database.

CJ: 100%, great call out. Yeah, regardless if you’re with WP Engine or not, Local does remain the standard for dev testing, and you don’t have to be a WP Engine customer to leverage that.

DP: And so does that also kind of imply that—this is a newbie question, as we were saying before the show, I know enough to know not to upgrade my own database on WordPress—but is a local environment the most convenient way to test it? Is it the best way or I guess what I’m getting at is, I would sometimes just spin up a new online staging environment maybe, and try something like that, which I assume is bad practice, but I was hoping you could just kind of tell me why.

CJ: Yeah, that’s a great clarification, and I guess, to be clear here when we say, you know, a local testing environment, you know, for many folks, you know, being able to pull down your site into your machine and, and test it out, um, locally, you know, literally, uh, locally on your machine, is a safer way to test. You’re just ensuring that there’s no impact on your site, to your prod environments, you’re able to test a wide variety of different scenarios without any potential impacts to your live production environments. But that said, if you wanted to really ensure that your sites are going to behave well in those live prod environments, you may have the option to spin up an actual test server, that’s kind of a production environment, but you’ve got your staging and your dev sites there that you could test against. And that just gives you a little bit more, confidence, I guess, that you’re going to have more of that one-to-one experience versus with Local, there is the potential that there may be certain results within a local environment that aren’t replicated in a production environment.

So it really just depends on the user and your site and what you’re needing to accomplish. So whether that be testing on a production server within a staging or dev environment, or testing locally on your machine, the main goal there is just to ensure that you are following some testing steps ahead of making that switch to a newer version.

DP: You know, with that, Carmen, I think we are going to take a short break and when we come back, we’re going to pick up this conversation on what devs need to know after they’ve done their testing to get ready for MySQL 8, as well as maybe some other factors about improvements that they might get from this new version, and some other general questions. So stay tuned. We’re going to take a short break and we’ll be right back.

DP: Welcome back to Press This, a WordPress Community Podcast. I’m your host, Doc Pop. I’m talking to Carmen Johnson, a platform product manager at WP Engine about MySQL end-of-life-ing, MySQL v5.7, and what developers need to know. I think right before the break, we were saying that if you are getting ready to upgrade, the first thing you should do is spin up another environment and test out the v5.8 or whichever version you’re going to switch to. Test it out. Make sure everything’s working. I guess we didn’t mention it, but a little spoiler, that includes making sure your plugins are working, you know, not just visually, the site’s loading, but sort of testing out everything. Once people have tested out their functionality, Carmen, what should they be doing next?

CJ: Yeah, great question. So once you’ve completed your testing cycles and you’re confident that your sites are ready for the upgrade, then it’s just preparing for the upgrade itself, and that could look very different depending on how you’re hosting your sites. 

So, for instance, if you’re a WP Engine customer, you’re hosting your sites with WP Engine, we’re handling that upgrade process on your behalf. If you are a customer of ours, you’ve probably already received communications from us about this upgrade wave, and, that’s already underway, and we are actually handling getting your sites from MySQL 5.7 on to 8. 0, for you. If you are not hosting with us and you’re leveraging a D-I-Y do-it-yourself solution, you’ll of course need to handle that upgrade yourself to avoid putting yourself at risk of security breaches—and there is public documentation available from MySQL to help you through that process.But in either case, it’s something that you’re going to need to do to avoid being on a version that’s no longer officially supported. 

If you are not doing DIY, but you’re just on a different managed host outside of WP Engine, I’d highly recommend that you check in with your host as soon as possible to learn about their plans for this upgrade, as it is impacting all WordPress users regardless of hosting provider.

DP: I know that downtime, you should be prepared for downtime if you’re doing an upgrade like this. And I guess part of that kind of factors in, even if you did your testing, maybe something still happens. So just be, you know, be ready for downtime. But if I’m a WP Engine customer or another host that will do a similar upgrade for me in the back, kind of like invisibly, right? 

And they’re handling it for me. Is there a chance that I’ll still have the downtime?

CJ: Yeah, that’s a really great question, and it is definitely something to prepare for, as you will certainly have downtime—with the upgrade comes a database restart. So regardless of your host or DIY or what have you, you are going to experience downtime on your sites as your databases are going down on 5.7 and coming back up on the the newer version. 

The good thing for WP Engine customers is that we are timing these upgrade cycles with your standard maintenance window. So, depending on where you’re located, the upgrade itself would be happening during your already communicated maintenance window. So, it wouldn’t be any, unexpected downtime outside of those maintenance windows. But if you’re not with a host and you don’t have that set up, you could expect to need to put up some sort of maintenance paid or something for your customers to ensure that they’re not having a bad experience as those databases are restarting.

DP: So let’s talk about the good news here. Assuming this gets a whole bunch of people, 75 percent of WordPressers, hopefully, will move over to version 8.0 or higher. What benefits can they get out of a database upgrade like this?

CJ: Yeah, there’s definitely some good news there, as there are some noted advantages with MySQL 8 specifically—specifically some performance and functionality enhancements like enhanced security with OpenSSL improvements, a new default authentication method, the introduction of SQL roles, breaking up the super privileged password strength enhancements, a lot of technical jargon that basically just equates to really enhanced security, with MySQL 8.0, as well as improved performance. There are enhancements to NODB, which deliver better read, write, workload performance, IO bound workloads, basically ensuring that the NODB buffer is performing well. And including things that devs love, like improved SQL code organization and readability, with the introduction of some new features, like SQL window functions and common table expressions. There’s also some enhanced JSON capability in there, and just overall reliability, that comes with MySQL 8 specifically.

So definitely some good things to come along with just knowing that you’re going to be on the most secure version of MySQL.

DP: Yeah, I feel like largely what I’m hearing here is security. You did briefly mention that there’s gonna be a couple new ways that coders are working. And so this kind of standardizes towards those new ways so that, developers will have an easier time using MySQL, but largely what I’m hearing is SSL upgrades and changing how permissions are broken up for users.

I didn’t know about the super-user thing. That sounds a little sketch. Like, if that gets hacked, that sounds scary. But, anyway, it sounds largely like what we’re talking about, aren’t your typical speed improvements, although there might be some, it sounds largely like this is a big security upgrade for MySQL.

CJ: Definitely, definitely. All signs are pointing to that. This is mainly a lot of security enhancements that are coming with this new version.

DP: I was kind of wondering, I don’t know if you’ll be able to tell me this, but as I’m kind of learning about this, cause this is not, I don’t talk about MySQL databases often. I just keep staring at this number that makes no sense to me. And Carmen, I hope you can explain it to me. We’re, we’re just seeing like all these releases, 5.1, 5.2, 5.7, and then just this gap to 8.0, and then 8.1, and it’s all so different than how WordPress works. The releases seem like years apart. And I don’t know, do you understand the naming convention and the numbering convention and why we went from 5.7 to 8?

CJ: Yeah, that’s a great question, and it’s actually a common one that we at WP Engine do get a lot. Unfortunately, I’m going to have to disappoint you and tell you that I don’t have a good answer for it, other than MySQL just didn’t release any new versions between 5.7 and 8.0. Obviously there are sub-versions, so 5.7.x, but there were no other major versions of releases between 5.7 and 8.0. If anyone does know the answer to that question of why they skipped so many levels before eight, I’d love to hear it.

DP: We’d have to look into the Oracle. But if it was, that was a pun by the way. 

CJ: Yeah

DP: At least they’re not doing like what Apple’s doing where it’s like, iPhone nine, iPhone X, iPhone XR, right?

CJ: Yeah. There’s at least some rhyme and reason.

DP: Yeah. Okay, so we are going to take one more short break and when we come back, we’re going to pick up our conversation with Carmen about MySQL 8 and the end of life of 5.7, so stay tuned for more after this short break.

DP: Welcome back to Press This, a WordPress Community Podcast. I’m your host, Doc Pop, talking today to Carmen Johnson, a platform product manager at WP Engine, about MySQL end of life for 5.7 and the advantages of moving to MySQL 8. And also, if you happen to be, because I’m sure there’s someone out there that’s just, every time we say MySQL, it could be also “M Y S Q L” right? Or My-S-Q-L. Apparently, that’s what Oracle says on their site is the standardized pronunciation, but after saying my-sequel for so long, it’s hard for me to get used to any other way to say it.

CJ: I have the same problem.

DP: Kind of along those lines, I was actually wondering Carmen, we’ve talked about your advice for people who are going to be upgrading and about the benefits of the new version. And I mentioned earlier in the show that I’m kind of used to the way WordPress does things, and I forgot to look it up before the show, but I know that WordPress supports practically all versions of WordPress, like there’s a big brouhaha when they’re talking about stopping support for WordPress 3 or something for like really old versions. And MySQL does it totally the opposite way. We’re talking about, the last major version before 8.0 was 5. 7, and they’re getting ready to end-of-life that last version. So they’re not supporting multiple major versions, like WordPress is.

And I guess, to get to my question, Carmen, I was just wondering if you had any thoughts on how you thought they handled this, you know, did they communicate it to the users well? And what you think about their decision to end of life the previous version, which was admittedly seven years old?

CJ: So, you know, in my personal opinion, I don’t feel that they were as vocal, to be frank, about the upcoming end of life as they could have been. But to be fair, there are many implementations of MySQL outside of Oracle’s officially supported version. So, you know, to be able to capture that broad of a swath and run that program essentially, efficiently. It may have just been something that they weren’t able to do. But speaking specifically of Oracle, I do think they could have been a bit more vocal. Granted, you did mention that this version, 8.0, has been out for quite some time now, but with an end-of-life, especially one that comes with potential security risk, significant security risk, for people remaining on this older version, I do think that there, there was an opportunity for them to be a bit more vocal in encouraging users to adopt MySQL 8, earlier.

DP: And this would go towards, I guess, people who are hosting kind of on like not managed hosts and they just maybe have this kind of long-running site that maybe they’re keeping their WordPress version up to date all the time, but they haven’t updated, you know, anything else. anything external, like their database, they haven’t updated it, let’s say in, you know, six or seven years.

So these would be the sort of people that, if they didn’t hear about it, and their host isn’t upgrading them as a kind of a privilege of being on that hosted, managed server, then they might run into security issues. Maybe not right away, not like November 1st, but you know, next year, they still probably don’t know that there’s a new version and that MySQL 5.7 is no longer supported. So these are the users that you’re saying maybe would be at risk because they didn’t hear about it.

CJ: Yeah, absolutely. and I’m actually gonna let you in on a little secret here since you did mention it. you know, There may be people that are using versions of MySQL even older than 5.7. Versions that have already been end of life, and they just don’t realize it because they’re not working with the host or some provider that’s able to help them keep those versions up to date.

So yeah, this is definitely a risk that is present if you’re hosting on your own or D-I-Y and, you know, just aren’t tied into the MySQL community in that way.

DP: Well, I think on that note, Carmen, that’s all the questions I had. If someone listening to this has another question about the upgrade or just how WP Engine is handling it, is there a place that you recommend that they reach out or look for more thoughts?

CJ: Absolutely. So we’ve definitely curated a lot of content in our support center in helping prepare people for this switch to MySQL 8. So you could go to wpengine.com backslash support backslash prepare for MySQL 8. And we have a plethora of information there around what exactly this end of life is, what it means for you, how to test your site, and as always, as a customer, you can definitely reach out to our support team if you have any specific questions about your site or need assistance with testing, or just want to know about the upgrade itself.

DP: Well, I really appreciate you joining us today, Carmen. if you enjoyed this episode, I wanted to recommend that you check out more episodes on torquemag.io. We do our best to put up transcribed versions of each episode, so you can dive in there.

You can also subscribe to Press This on your favorite podcasting app. Mine is Overcast. Thanks for listening to Press This, a WordPress community podcast on WMR. You can follow our adventures on Twitter at the Torque mag, or you can go to torquemag.io, as I mentioned earlier, to find previous episodes.

You can subscribe on RedCircle, iTunes, Spotify, or download directly from WMR.fm. I’m your host, Dr. Popular. I support the WordPress community through my role at WP Engine, and I love spotlighting members of that community each and every week on Press This.