Skip to main content
+44 7575 472931[email protected]
HostAccentKnowledge BaseHosting, websites, SEO, and growth

WordPress Database Update Required: Safe Fix Steps 2026

Seeing WordPress database update required after a core update, or stuck in a loop? Run the upgrade safely and fix the real causes behind it, step by step.

WordPressWeb Hosting
WordPress database update required screen on a live site, with the safe upgrade and cache-clearing fix for 2026

You clicked update, waited for the progress bar, and went back to your dashboard. Instead of the dashboard you got a plain blue screen reading "WordPress database update required." Nothing else loads. Before you touch anything, know this: that screen is a normal part of a core upgrade, and by itself it does not mean your posts, products or settings are damaged.

Quick Answer: The WordPress database update required screen appears when your core files are newer than the schema version recorded in your database. As of August 2026, the fix takes under a minute on most sites: back up the database, open /wp-admin/upgrade.php, and click Update WordPress Database. If the screen returns after you click, the cause is almost always a stale object cache, not a broken database.

Our engineers clear 20 to 30 client site issues every day, and this one shows up in the queue every time a major core release lands. What follows is the exact order we work through it, with nothing held back. On a managed stack like Hostaccent's, most site owners never see this screen because support catches it first. On a server you run yourself, you can reach the same result in about five minutes.

Rule one thing out immediately. If the prompt arrived as an email telling you to update your database urgently, with a helpful login link attached, that is a long-running phishing pattern. WordPress does not email that request. The real prompt lives inside wp-admin and nowhere else.

What "WordPress Database Update Required" Actually Means

Two numbers have to match, and right now yours do not. WordPress stores a schema revision called db_version inside the wp_options table. Your core files carry their own expected revision, $wp_db_version, in wp-includes/version.php. When a release changes the database structure, the file number moves ahead of the stored number, and WordPress locks the admin area until you let the database catch up.

Call it The Two-Number Check. It is the fastest way to separate a routine prompt from a real problem. If the stored db_version is lower than the one in version.php, the prompt is legitimate and the upgrade will clear it. If the two already match and you are still being asked, you do not have a database problem at all: something between you and the database is serving a cached answer. That single distinction saves most people an hour of blind troubleshooting.

Clicking the button runs wp_upgrade(), which applies the schema changes (new columns, altered indexes, the occasional option rename), writes the new db_version, and flushes your rewrite rules. Content is never rewritten. Posts, pages, users, media and WooCommerce orders stay exactly where they were.

Your front end usually keeps serving normally while all this is happening, which is worth confirming before you panic: open your homepage in a private window. This has nothing to do with your DNS records, your SSL certificate, or your control panel. If the front end is down too, you are looking at a different fault, and 500 Internal Server Error WordPress: Fix It Fast (2026) is the better starting point.

Do I actually need to worry about losing my data?

No, and the honest reason is that the upgrade routine is one of the most heavily exercised code paths in WordPress. It runs on millions of installs after every release. The realistic risk is not the routine, it is running it on an already-damaged database or interrupting it halfway through. That is exactly why the backup step below is not filler.

Pro Tip: Read both numbers before you change anything. wp option get db_version gives you the stored value, and grep wp_db_version wp-includes/version.php gives you the expected one. Twenty seconds of reading beats twenty minutes of guessing.

Causes Ranked by How Often We Actually See Them

Ranked by frequency in our own support queue, not by how interesting they are. Work down the list in order and you will land on yours faster.

1. A normal core update. By a wide margin the most common cause. WordPress updated, the schema moved, the prompt is doing its job. One click and you are done.

2. A stale persistent object cache. Redis or Memcached still holds the old db_version value, so WordPress keeps reading the outdated number even after the upgrade wrote a new one. This is what produces the database update required loop: you click the button, you get "No update required, your WordPress database is already up to date," and you land straight back on the same screen. WordPress asking for database update on every page load, with nothing at all in the error logs, is this cause roughly nine times out of ten.

3. Full-page caching in front of wp-admin. A caching plugin or an edge rule that caches /wp-admin/ will serve you a saved copy of the upgrade screen indefinitely.

4. An interrupted update. PHP hit max_execution_time or ran out of memory partway through, leaving the WordPress database upgrade stuck halfway and sometimes a stray .maintenance file in the site root. Accounts that already bump into 508 Resource Limit Is Reached errors during traffic peaks see this far more often than most.

5. Database user privileges. The MySQL or MariaDB user named in wp-config.php needs ALTER, CREATE and INDEX rights to change the schema. Plenty of locked-down setups grant SELECT, INSERT, UPDATE and DELETE only, so the upgrade quietly cannot finish.

6. A crashed or corrupt table. Usually wp_options, usually on legacy MyISAM tables or after a disk filled up mid-write.

7. Multisite. Every subsite carries its own db_version. The network upgrade has to run across all of them, which the single-site button will not do.

From the Ticket Queue: According to Hostaccent's support-queue data (August 2026), WordPress issues account for about 30% of the tickets we handle each month, with brute-force and malware at 25%, Linux server issues at 25% and SSL problems at 20%. Inside that WordPress slice, post-update lockout screens and the loop that follows them are among the most frequent single reasons an owner cannot reach their own dashboard.

The Safe Fix: Back Up First, Then Run the Upgrade

Four steps, and the one people skip is the first.

Step 1: Take a database backup you can actually restore. With SSH access, wp db export backup-pre-upgrade-2026-08.sql writes a dump to your site root in seconds. No SSH? Export the database from phpMyAdmin in your control panel, or trigger a manual backup from your host's dashboard. Move the file off the server if you can. A backup sitting on a full disk is not a backup.

Step 2: Click the button. Go to /wp-admin/upgrade.php directly (typing the URL works even when the redirect is misbehaving) and click Update WordPress Database. On a small site this finishes in a second or two. On a busy store with a heavy wp_options or wp_postmeta table it can take 30 to 60 seconds, so let it run. Do not close the tab, and do not click twice.

Step 3: If the browser route stalls, use WP-CLI. The command line skips the admin interface entirely, which matters because the admin interface is often the broken part:

bash
wp core check-update-db
wp core update-db

Adding --dry-run compares the versions without writing anything, which is the safest opening move on a client site you do not know well. For a network, wp core update-db --network walks every subsite in turn. The WP-CLI core update-db documentation lists the full flag set.

Step 4: Verify, do not assume. Reload wp-admin, then confirm the two numbers agree:

bash
wp option get db_version
grep wp_db_version wp-includes/version.php

Matching values plus a loading dashboard means you are finished. Different values, or a dashboard that bounces you back to the upgrade prompt, means the write never landed, and the next section is where you go.

Pro Tip: On live stores, run the upgrade in a quiet window and switch on maintenance mode for the 60 seconds it needs (wp maintenance-mode activate). A shopper who hits checkout during a schema change generates an order you will spend far longer reconciling than the update itself takes.

Breaking the Database Update Required Loop

If clicking the button returns "No update required, your WordPress database is already up to date" and then drops you back on the prompt, stop clicking. The database is fine. Something is feeding WordPress a stale copy of that db_version value, and the layers have to come off in order.

1. Drop the persistent object cache. Rename /wp-content/object-cache.php to object-cache.php.bak using SFTP or your file manager. That single drop-in file is what routes WordPress option reads to Redis or Memcached; with it renamed, WordPress reads the real value straight from the database. In our experience this one step clears the large majority of loops. With shell access, run wp cache flush first and restart the cache service (redis-cli flushall, or restart memcached) so the stale key cannot be served again.

2. Clear the page cache, then the edge. Purge everything in your caching plugin, then purge at the CDN. On Cloudflare, purge the zone and confirm you have a rule that bypasses /wp-admin/* completely, because caching the admin area causes stranger faults than this one. Cloudflare's cache configuration documentation covers the bypass rule.

3. Clear your browser properly. Not just a hard refresh. Cookies too, or test in a private window, because the redirect trapping you can be cached client-side.

4. Only then suspect a plugin. Rename /wp-content/plugins to plugins-off, load wp-admin, and let the upgrade run with everything disabled. Rename the folder back and reactivate in batches. Security plugins and firewall rules that block /wp-admin/upgrade.php are the usual suspects.

Now the part most articles on this error get wrong. A lot of guides tell you to open version.php and edit $wp_db_version down to match the number stored in your database. Do not do that. It does silence the prompt, and it also tells a modern WordPress install that it is running an older schema, so the columns and indexes the new core expects never get created. You meet the consequences weeks later as queries that fail for no visible reason, long after anyone remembers the edit. Fix the cache, run the real upgrade, and leave core files exactly as WordPress shipped them.

Live site, and no time to experiment? Our engineers fix this exact error for a small one-time fee, and you see the exact quote before anyone touches your site. Already hosted with Hostaccent? Then this is simply covered by your support, at no charge. Have an engineer fix it

Still Stuck? Permissions, Timeouts and Broken Tables

WP upgrade not finishing, with the cache layers already cleared, points at four things. Check them in this order.

Database privileges. Run SHOW GRANTS FOR 'your_db_user'@'localhost';. You need ALTER, CREATE and INDEX alongside the usual read and write rights. Without ALTER, the upgrade cannot add a column and gives up without a useful error. Fix it with a GRANT statement, or ask your host to widen the grant.

Disk space and quota. Run df -h on the server, or open the disk usage panel in cPanel or Plesk. A full disk or an account at quota stops MySQL writing, and stops your backups writing too. It is also how tables get crashed in the first place.

PHP limits. Large wp_options and wp_postmeta tables need room to work. Raise max_execution_time to 300 and give PHP more memory for the duration:

bash
define('WP_MEMORY_LIMIT', '256M');

The core php.ini directives reference explains what each setting does. Put them back afterwards. If your tables are big enough that upgrades routinely time out, that same bloat is costing your visitors real performance, and How to Fix High TTFB in WordPress (2026 Guide) covers that side of it.

A leftover .maintenance file. Look in the site root. When an update dies partway, that file stays behind and WordPress keeps announcing it is "briefly unavailable for scheduled maintenance." Delete it, then re-run the update.

Crashed tables. Add define('WP_ALLOW_REPAIR', true); to wp-config.php, visit /wp-admin/maint/repair.php, and run Repair Database. With WP-CLI, wp db check followed by wp db repair does the same job. Remove the constant the moment you finish, because that page is reachable without logging in.

Multisite. Run wp core update-db --network, or visit /wp-admin/network/upgrade.php as a super admin. Subsites keep individual db_version values, and skipping the network pass leaves half your sites prompting forever.

If you have worked through all of that and the upgrade still will not complete, restore the backup from Step 1 and re-run the core update cleanly instead of repeating failed attempts against a half-migrated schema. Our team would rather roll back ten minutes of work than debug a database stuck between two versions.

Confirm the Fix and Keep It From Coming Back

Confirm it properly. Load the dashboard, check that db_version in wp_options now matches $wp_db_version in version.php, open Tools > Site Health for anything newly critical, and click through your homepage, a post, and a checkout or contact form in a private window. Then restore object caching (rename object-cache.php back, or reactivate the plugin) and reload wp-admin once the cache has warmed, to be sure the prompt does not return.

Strip out your temporary changes next: the WP_ALLOW_REPAIR line, any raised PHP limits, maintenance mode. Debug settings left behind after a 3am fix cause the following incident more often than the original bug did.

Prevention comes down to five habits:

  • Back up before every core update, automatically, with a copy held off the server.
  • Run one caching layer, not three. Overlapping page cache plugins plus a plugin-managed object cache plus edge caching is how a one-click upgrade becomes an afternoon.
  • Update with WP-CLI where you can. wp core update && wp core update-db finishes both halves in one go and never locks you out of the interface you need to fix the interface.
  • Test on staging first, especially for stores and membership sites.
  • Watch table growth. Runaway transients and autoloaded options are the real reason upgrades time out.

Insider Insight: After any upgrade, run wp db query "SELECT SUM(LENGTH(option_value)) FROM wp_options WHERE autoload='yes';". More than a couple of megabytes of autoloaded data is a performance problem long before it is an upgrade problem, because every single page load carries it.

Underneath all of this sits the variable nobody markets: the server. Schema changes that time out on oversold hardware finish instantly on NVMe SSD storage with genuine CPU headroom, and a host offering a 99.9% uptime guarantee has a commercial reason to keep that headroom free. Across the 10,000+ sites our team has launched and the 4,000+ migrations we have run since 2012, the sites that hit this error repeatedly are almost always the ones on saturated shared hosting, rarely the ones with unusual plugins.

If your site is slow enough that a schema change takes a full minute, work through WordPress Site Slow: Complete Diagnosis and Fix Guide (2026) next. If updates keep failing under load, Best Hosting for High Traffic WordPress Sites in 2026 covers what actually changes at that point, and failing updates plus failing vitals usually share one root cause, which Core Web Vitals Failing? Your Hosting Might Be the Problem digs into. The official WordPress documentation is worth bookmarking for the update process itself.

Your Next Step: Fixed It, or Still Stuck?

Fixed it? Keep the habit that prevents the repeat: back up before you update, and run one cache layer instead of three. Worth saying plainly, though, that on a well-managed host a post-update lockout is support's job rather than yours. That is the whole argument for starting on managed WordPress hosting with Basic at $22.99/yr, renewing at $22.99/yr, NVMe SSD storage, a 99.9% uptime guarantee and 30 days to change your mind. Honest fit check: Basic is sized for one site, so if you run several client projects, start a tier higher.

Still stuck? Open a ticket with our engineers and you will see the exact quote before any work begins. Hostaccent hosting clients pay nothing for it. Either way, the WordPress database update required screen should be behind you today.

Frequently Asked Questions About WordPress Database Update Required

Why does the WordPress database update required screen keep coming back?

Because something is handing WordPress a stale value. When you click the button and get "No update required," the upgrade has already run and the number in your database is correct, but a persistent object cache (Redis or Memcached) or a cached admin page keeps serving the old db_version. Rename /wp-content/object-cache.php, flush the cache service, purge your CDN, then clear your browser cookies. The loop breaks in that order roughly nine times out of ten.

Will running the database update delete my posts or products?

No. The routine changes structure, not content: it adds or alters columns and indexes, renames a few options, writes the new schema number and flushes rewrite rules. Posts, pages, users, media and WooCommerce orders are untouched. The genuine risk is interrupting it partway or running it against an already-corrupt table, which is why you export a backup first and let the process finish without closing the tab.

How long should the database update take?

Seconds, on a typical site. A blog with a few hundred posts finishes almost instantly, while a busy store with a large wp_postmeta table and a bloated options table can take 30 to 60 seconds. Anything past a couple of minutes points to a PHP timeout, a locked table, or a server under heavy load rather than a genuinely enormous database. Check max_execution_time and current load before retrying.

Can I just edit version.php so the message goes away?

You can, and you should not. Lowering $wp_db_version to match the old stored number silences the prompt while leaving your database without the columns and indexes the new core expects. Queries that assume the newer schema then fail unpredictably weeks later, long after anyone connects the two events. Fix the actual cause, which is usually a stale object cache, run the real upgrade, and leave core files as WordPress shipped them.

What happens if I ignore the prompt and keep working?

You cannot, in practice. WordPress blocks the admin area until the upgrade runs, so the dashboard, plugin screens and editor all stay out of reach. Your front end usually keeps serving pages, which buys you a little time and also hides the problem from you. Running a site with mismatched schema and code invites corrupted queries, so treat it as a same-day job rather than a Monday one.

How do I run the update if I cannot log in at all?

Use WP-CLI over SSH. wp core update-db runs the identical routine without touching wp-admin, and wp core check-update-db first tells you whether it is even needed. If SSH is unavailable, rename /wp-content/object-cache.php and /wp-content/plugins through your control panel's file manager, then load /wp-admin/upgrade.php directly. Between those two routes, almost every lockout is recoverable without restoring a backup.

Does this error mean my hosting is the problem?

Not usually, though hosting decides how painful it gets. The prompt itself is normal WordPress behaviour after a schema change. Hosting becomes the cause when PHP limits are too tight, the disk is full, the database user lacks ALTER rights, or oversold hardware stalls the upgrade halfway. Hostaccent, a UK-registered company trading since 2012 and incorporated in 2018, treats this class of problem as standard support work rather than leaving it with the site owner.

Reviewed by

HostAccent Editorial Team

Our support team handles 20–30 issues like this every day.

Last updated

Sep 4, 2026

HostAccent Editorial Team publishes practical hosting guides, operations checklists, and SEO-focused tutorials for businesses building international web presence.

Discussion

Have a question or tip about this topic? Share it below — your comment will appear after review.

Your email stays private and is only used for moderation.

Write for the Community

Have a tutorial, tip, or insight to share? Get published on the HostAccent Blog with your name, bio, and website link.

Become a Contributor

Need a faster setup for this workflow?