The UK Guide to Fixing the “Missing MySQL Extension” Error in WordPress
A complete, beginner-friendly guide for British WordPress users to diagnose and solve the frustrating ‘missing MySQL extension’ error for good.
This post may contain affiliate links. If you make a purchase through these links, we may earn a commission at no additional cost to you.
Right then. You’ve woken up, grabbed a cuppa, and decided to check on your beloved WordPress website. But instead of your beautiful homepage, you’re greeted by a cold, stark error message: “Your PHP installation appears to be missing the MySQL extension which is required by WordPress.”
Don’t panic. Your website hasn’t vanished into the digital ether. This is one of the most common (and most terrifying) WordPress errors, but the good news is that it’s almost always fixable. You don’t need to be a coding wizard or a tech genius. You just need a clear plan and a bit of patience.
This guide is that plan. We’re going to walk you through exactly what this error means in plain English, why it’s suddenly appeared, and, most importantly, how to get it sorted step-by-step. We’ll get your site back up and running, and you’ll even learn a thing or two along the way.
Think of this as your friendly, digital AA patrol for a broken-down website. Let’s pop the bonnet and see what’s what.
Before We Begin: Two Absolutely Crucial Safety Checks
Before you touch a single setting, we need to cover two golden rules of website maintenance. Do not skip these.
- Back Up Your Website: If you have a recent backup of your site, you have a safety net. Most good hosting providers create daily backups automatically. Check your hosting dashboard now and make sure you have a fresh one. If you’re not sure how, a quick message to your host’s support team asking “Can you confirm I have a recent backup?” is time well spent. If you can, take a manual backup now. This is your ultimate undo button.
- Don’t Be Afraid to Contact Your Host: The solutions we’ll cover will fix this problem for 99% of people. But if you get stuck or feel you’re out of your depth, stop. Your hosting provider’s job is to help with this sort of thing. It’s what you pay them for! A good host will sort this for you in minutes.
With those safety nets in place, let’s get to the bottom of this mystery.
What on Earth Is the “Missing MySQL Extension”? (And Why Me?)
This error sounds horribly technical, but the concept behind it is surprisingly simple.
Imagine your WordPress website is a busy office.
- WordPress itself is the Office Manager. It knows what content to show, how it should look, and what all the users are doing.
- Your Database (MySQL) is the Filing Cabinet. It stores absolutely everything: your blog posts, pages, user comments, passwords, and site settings.
- PHP is the Language Everyone Speaks. It’s the programming language that runs all the commands and processes in the background.
Now, for the Office Manager (WordPress) to get information from the Filing Cabinet (your database), it needs a translator. This translator is a piece of software called a PHP extension. Specifically, the MySQL extension.
The error message, “missing the MySQL extension,” is your website telling you that the translator is gone. WordPress is trying to ask the database for your latest blog post, but it can’t, because the go-between who speaks both “PHP” and “MySQL” has vanished. Without it, everything grinds to a halt.
So, Why Did the Translator Suddenly Disappear?
This is the key question. Your site was working perfectly yesterday, so what changed? It nearly always comes down to one of these three culprits:
- A PHP Version Update (The Most Common Cause): Your web hosting company, in an effort to keep things secure and speedy, probably updated the version of PHP running on your server. This is a good thing! However, older versions of WordPress used an old, outdated translator called the
mysqlextension. Newer versions of PHP (anything from PHP 7.0 onwards) have completely removed this old translator. They now use a much better, more secure one calledmysqli(notice the little ‘i’ on the end) ormysqlnd. If your WordPress installation is a bit older or hasn’t updated its configuration correctly, it might still be looking for the old, now-non-existent translator. - A WordPress Update: Sometimes, updating WordPress core, a theme, or a plugin can create a conflict. A recent update might require a newer version of PHP than your server is currently running, leading to this mismatch.
- A Server Configuration Glitch: Very rarely, something might have been misconfigured on the server itself. The
mysqliextension might have been accidentally disabled during other maintenance.
The bottom line is, this probably isn’t your fault. It’s usually the result of a background update designed to keep your site safe. Now, let’s fix it.
Step 1: The First Port of Call – Check Your PHP Version
Before we change anything, let’s do some detective work. The most common cause of this error is a mismatch between what PHP version your site is running and what WordPress requires.
WordPress officially recommends using PHP version 7.4 or greater. Many modern plugins and themes require at least this. If your server was recently downgraded to an older version (like 5.6) or upgraded to a very new one (like 8.2) without the right extensions, it could trigger the error.
Your hosting control panel is the place to check and change this.
How to Check and Change Your PHP Version in cPanel
cPanel is one of the most common hosting dashboards in the UK. It might look slightly different depending on your host, but the steps are generally the same.
- Log in to your hosting account and open cPanel.
- Scroll down to the Software section. Look for an icon called “Select PHP Version” or “MultiPHP Manager”. The former is more common and gives more control. Let’s start with that one.
- Click on “Select PHP Version”. You’ll see a page showing your current PHP version. It will have a dropdown list with all the available versions.
- Check the Current Version: Is it something old, like 5.6? Or very new, like 8.1 or 8.2?
- The Fix: Select 7.4 from the dropdown menu. This is often the “safest” modern choice that balances compatibility and performance. If 7.4 is already selected, try 8.0. After you select it, click “Set as current” or “Apply”.
- Refresh Your Website: Go back to your website and refresh the page. Has the error gone? If so, congratulations! You’ve fixed it. Grab another biscuit; you’ve earned it.
If you have “MultiPHP Manager” instead:
- Click on it. You’ll see a list of your domains.
- Select your website by ticking the box next to it.
- On the right, there’s a dropdown menu labelled “PHP Version”. Choose a version (again, 7.4 is a great starting point) and click “Apply”.
- Refresh your website to see if the error is resolved.
How to Check and Change Your PHP Version in Plesk
Plesk is another popular control panel. The process is just as straightforward.
- Log in to Plesk.
- Go to the “Websites & Domains” tab.
- Find your website in the list and look for “PHP Settings”. Click on it.
- You’ll see a dropdown menu for the “PHP version”.
- Select 7.4 or 8.0 and click “OK” or “Apply” at the bottom of the page.
- Head over to your website and refresh. If it loads, you’re back in business.
If changing the PHP version solved the problem, you don’t need to do anything else. If the error is still there, don’t worry. It just means our translator issue is a little more specific. On to Step 2.
Step 2: The Direct Approach – Make Sure the mysqli Extension is Enabled
So, you’re on the right version of PHP, but the error persists. This suggests that while the correct PHP language is being used, the specific “translator” book (mysqli extension) is still missing from its library.
We need to go and manually check that it’s turned on. Luckily, we do this in the same place we just were.
- Go back to your hosting control panel (cPanel or Plesk).
- Navigate back to the main PHP settings page (“Select PHP Version” in cPanel, or “PHP Settings” in Plesk).
- Make sure you’re on a modern PHP version (7.4 or 8.0).
- On this page, you should see a long list of checkboxes next to names like
fileinfo,gd,imagick, and so on. These are all the different extensions—the tools in PHP’s toolkit. - Scroll through the list and look for
mysqli. You might also see one callednd_mysqli. - Make sure the box next to
mysqli(ornd_mysqli) is ticked. If it’s unticked, this is almost certainly your problem. - Tick the box. The page should save automatically, or you may need to click a “Save” or “Apply” button.
- Important: While you’re here, make sure other common WordPress extensions are also ticked. These usually include
bcmath,dom,gd,imagick,mbstring,openssl, andzip. Most hosts enable these by default. - Once you’ve ticked the
mysqlibox and saved, go back to your website and do the all-important refresh.
For the vast majority of people, this is the magic bullet. The combination of a modern PHP version and an explicitly enabled mysqli extension gives WordPress the exact translator it needs to talk to the database.
If you are still seeing the error, it’s time to get a little more hands-on. But we’ll do it carefully.
Step 3: For the Brave – Editing the php.ini File
This step involves editing a configuration file directly. It’s not as scary as it sounds, but you must follow the instructions precisely. Only proceed if the steps above didn’t work.
What is the php.ini File?
The php.ini file is the main instruction manual for PHP on your server. It tells PHP exactly which settings to use and which extensions to load. Sometimes, the graphical tools in cPanel don’t correctly update this file, so a manual check is needed.
Our goal is to find this file and ensure the line that loads the mysqli extension isn’t disabled.
Finding and Editing php.ini
- Go to Your cPanel/Plesk Dashboard.
- Open the “File Manager”.
- The
php.inifile can be in a few places. Most commonly, it’s in yourpublic_htmldirectory (the main folder for your website). If you can’t see it, it might be a “dotfile” (hidden file). In your File Manager settings, make sure you have “Show Hidden Files” enabled. - If it’s not in
public_html, it might be in your home directory (one level up). Some hosts also provide a tool called “MultiPHP INI Editor” in cPanel, which is a safer way to do this. If you have that, use it! - Once you’ve found
php.ini, right-click on it and select “Download”. This saves a backup to your computer, just in case. - Now, right-click the file again and choose “Edit”.
- You’ll see a text editor. Use the search function (Ctrl+F or Cmd+F) and search for
mysqli. - You are looking for a line that looks like this:
extension=mysqlior maybe:;extension=mysqli - The Fix: The semi-colon (
;) at the start of a line means “ignore this line” – it’s a comment. If you see a semi-colon before yourextension=mysqliline, this is your problem. Delete the semi-colon.- It should go from:
;extension=mysqli - To:
extension=mysqli
- It should go from:
- Save the file. Click the “Save Changes” button in the top right.
- Final Check: Go back to your website and refresh the page.
This manual edit forces PHP to load the extension. If this was the issue, your site will now spring back to life.
When All Else Fails: Calling in the Cavalry (Your Hosting Provider)
If you’ve tried all of the above—you’ve set the correct PHP version, you’ve confirmed mysqli is ticked in the extensions list, and you’ve checked the php.ini file—and the error is still there, then it’s time to stop.
This means the problem is likely at a deeper server level that you don’t have access to. It is now 100% your hosting provider’s responsibility to fix it.
Contact their live chat or open a support ticket. Give them a clear, simple message:
“Hello, my WordPress website at [yourdomain.co.uk] is showing the error ‘Your PHP installation appears to be missing the MySQL extension’. I have already tried changing the PHP version to 7.4 and 8.0, and I’ve confirmed that the ‘mysqli’ extension is enabled in my cPanel. Please can you investigate this for me?”
This message shows them you’ve done your homework and tells them exactly what the problem is. A decent support team will be able to identify and fix the underlying server configuration issue very quickly.
Prevention is Better Than a Cure: How to Avoid This Headache in Future
You’ve fixed the problem. Your site is back. Now, how do you stop this from ever happening again?
- Keep WordPress Updated: Always run the latest version of WordPress. It’s designed to work with modern, secure versions of PHP, making these conflicts less likely.
- Keep PHP Updated: Don’t stick on old PHP versions for years. When your host recommends updating from 7.4 to 8.0, for example, it’s a good idea. The best practice is to use a staging site—a clone of your live site—to test the new PHP version first. If everything works there, you can update your live site with confidence.
- Choose a Quality Host: A good WordPress host manages these transitions smoothly, ensures the right extensions are always available, and has a support team that can fix problems quickly. If your host was unhelpful, perhaps it’s time to look elsewhere.
- Regular Backups: We said it at the start, and we’ll say it again. Regular, automatic backups are the single most important thing for your peace of mind.
A Quick Glossary of Terms (In Plain English)
- PHP: The programming language that powers WordPress. It works behind the scenes to build your pages and run your site’s functions.
- MySQL: The database system where all your website’s content and settings are stored. It’s the filing cabinet.
- PHP Extension: A small piece of software that adds a specific ability to PHP, like being able to talk to a database (
mysqli) or manipulate images (gd). mysqlvs.mysqli: Both are PHP extensions for talking to a MySQL database.mysqlis the old, slow, and insecure one.mysqli(the ‘i’ stands for ‘improved’) is the modern, secure one that WordPress now requires.- cPanel / Plesk: A graphical dashboard provided by your hosting company that lets you manage your website server settings without needing to be a tech expert.
You’ve Done It!
Take a moment to appreciate what you’ve just accomplished. You faced a critical, site-breaking error, stayed calm, and worked through the problem logically. You didn’t just blindly click buttons; you understood why you were doing what you were doing.
This is a massive part of successfully running a website. Problems will always crop up, but now you have the skills and confidence to handle one of the most common ones. Your site is back online, and you’re a more knowledgeable website owner than you were this morning.
Now, go and enjoy that well-deserved cuppa.
Further Reading
For those who want to dive even deeper, here are some excellent, authoritative resources:
- Official WordPress Hosting Requirements: The official source on what your server needs to run WordPress smoothly.
- PHP Supported Versions: A timeline showing which versions of PHP are actively supported and secure.
- cPanel Documentation: The official user guides for the cPanel dashboard.