←back to Blog

How to reset WordPress admin password without email: hosting panel, WP-CLI, phpMyAdmin, and FTP methods

How to Reset Your WordPress Admin Password Without Email (4 Methods That Work)

You click “Lost your password?”, type your email, and wait. Nothing arrives. Not in the inbox, not in spam, not ten minutes later. If you need to reset your WordPress admin password without email, the good news is that WordPress never actually needed that email in the first place. The password lives in your database, and anyone with hosting access can change it directly.

This guide covers four ways to get back into a locked WordPress site, from the easiest (one click in your hosting panel) to the most hands-on (editing the database in phpMyAdmin). Pick the one that matches the access you have.

Why Isn’t the WordPress Password Reset Email Arriving?

The WordPress password reset email usually fails because WordPress sends mail through the server’s basic PHP mail function, which many hosts block or which Gmail and Outlook silently reject as unauthenticated. The reset link was generated correctly. It just never made it to your inbox.

Two other causes are worth ruling out. The admin account might be tied to an old email address you no longer check, or you might be typing a username that doesn’t exist. Either way, the fix below doesn’t depend on email at all. Once you’re back in, fix the root cause so the next reset works normally. The full walkthrough is in WordPress Not Sending Emails? Here’s the Actual Fix.

Which Password Reset Method Should You Use?

The best method to reset a WordPress password without email depends on the access you have. If you can log into your hosting control panel, use its WordPress tool first. If you have SSH, WP-CLI is the fastest. phpMyAdmin and the one-time code file are fallbacks that work on almost any host.

MethodAccess NeededDifficultyBest For
Hosting panel (WP Toolkit, Softaculous)cPanel or Plesk loginEasiestMost shared hosting users
WP-CLISSH accessEasy if you use a terminalDevelopers, VPS and managed hosts
phpMyAdminDatabase access via hosting panelMediumWhen no WordPress tool is installed
One-time code fileFTP or File ManagerMediumNo database or SSH access

Method 1: Reset the Password From Your Hosting Control Panel

Most hosting control panels include a WordPress manager that can change an admin password with no email involved. In cPanel this is usually WP Toolkit or Softaculous, and in Plesk it’s the WordPress section. This is the safest method because the tool hashes the new password correctly for you.

  1. Log into your hosting account and open cPanel or Plesk.
  2. Open WP Toolkit (or Softaculous, then “All Installations”).
  3. Find your site and look for a “Login” or “Setup” or “Admin credentials” option.
  4. Choose the admin user, enter a new strong password, and save.

Many of these tools also have a one-click “Log in to WordPress” button that skips the password entirely. If you see it, use it, then change your password from Users > Profile inside the dashboard.

Method 2: Reset the WordPress Password With WP-CLI

WP-CLI resets a WordPress password in two commands: one to find the admin user, one to set the new password. It requires SSH access and must be run from the WordPress root folder, where wp-config.php lives.

First, list the administrator accounts so you know the exact user ID:

wp user list --role=administrator --fields=ID,user_login,user_email

Then set a new password for that user. Replace 1 with the ID from the list:

wp user update 1 --user_pass='Your-New-Strong-Passw0rd' --skip-email

The --skip-email flag stops WP-CLI from trying to send a “password changed” notification, which would fail anyway if email is broken. One caveat: the password you typed is now saved in your shell history. Treat it as temporary and change it again from the WordPress dashboard once you’re logged in.

If you’re not in the WordPress folder, add --path=/path/to/wordpress to either command.

Method 3: Reset the WordPress Password in phpMyAdmin

You can reset a WordPress password in phpMyAdmin by editing the user_pass field in the users table and saving it with the MD5 function selected. WordPress accepts that MD5 value once, then automatically upgrades it to a stronger hash the first time you log in.

  1. Open phpMyAdmin from your hosting panel and select your WordPress database. If you’re not sure which database it is, check the DB_NAME line in wp-config.php.
  2. Open the users table. It’s usually wp_users, but your prefix may differ. Check $table_prefix in wp-config.php.
  3. Click “Edit” on the row with your admin username.
  4. In the user_pass row, delete the existing value and type your new password in plain text.
  5. In the “Function” dropdown for that row, choose MD5. Then click “Go”.

The MD5 step is where most phpMyAdmin resets fail. If you skip the function dropdown, WordPress stores your password as plain text and the login will never match. Watch for extra spaces too.

Does the phpMyAdmin Method Still Work on WordPress 6.8 and Newer?

Yes. According to the Make WordPress Core announcement, WordPress 6.8 switched its default password hashing to bcrypt. A follow-up core changeset kept login support for MD5 hashes and upgrades them to bcrypt on the next successful login. So the MD5 reset in phpMyAdmin still works, and logging in once replaces the weak MD5 hash with a strong one.

That upgrade only happens when you log in. Don’t do an MD5 reset and walk away. Log in right after, then set a fresh password from your profile to be safe.

Method 4: Reset the Password With a One-Time Code File

If you only have FTP or File Manager access, you can reset a WordPress password by uploading a small must-use plugin that calls the wp_set_password() function, loading the site once, then deleting the file. The file must be removed immediately, because it resets the password on every page load.

In wp-content, create a folder named mu-plugins if it doesn’t exist. Inside it, create a file called reset-admin-pass.php with this code:

<?php
// TEMPORARY: delete this file right after you log in.
add_action( 'init', function () {
    $user = get_user_by( 'login', 'your-admin-username' );
    if ( $user ) {
        wp_set_password( 'Your-New-Strong-Passw0rd', $user->ID );
    }
} );
  1. Replace the username and password with your own values.
  2. Visit any page on your site once.
  3. Delete reset-admin-pass.php from the server.
  4. Go to /wp-login.php and log in with the new password.

A must-use plugin is better here than editing your theme’s functions.php. It can’t be accidentally overwritten by a theme update, and a typo won’t take down your theme. Just don’t forget step 3. Leaving the file in place means your password resets on every visit, and the plain-text password sits on the server.

What If the Password Is Correct but You Still Can’t Log In?

If a freshly reset WordPress password still doesn’t get you into the dashboard, the password was never the problem. The usual causes are a login redirect loop, a security plugin lockout, a two-factor authentication prompt you can’t complete, or a compromised account.

What to Do Right After You Get Back In

Getting back into WordPress is only half the job. Once you’re logged in, spend five minutes making sure you don’t end up locked out again.

  1. Set a new password from Users > Profile. Any password that passed through a terminal, a database field, or a code file should be considered temporary.
  2. Check your account email. Make sure it’s an address you actually read. Also check Settings > General > Administration Email Address.
  3. Review Users > All Users. Look for administrator accounts you don’t recognize.
  4. Fix email delivery. Install an SMTP plugin and send a test email, so the normal “Lost your password?” link works next time.
  5. Save the password in a password manager. Most lockouts start with a password that only existed in someone’s memory.

The Bottom Line

You don’t need the reset email to get back into WordPress. You need access to the server the site runs on. Start with your hosting panel’s WordPress tool, use WP-CLI if you have SSH, and fall back to phpMyAdmin or a one-time mu-plugin when nothing else is available. Then fix the email setup, because a site that can’t send a password reset email is probably failing to send contact form and order emails too.

Frequently Asked Questions

You can reset a WordPress password without the reset email by using your hosting panel’s WordPress tool (such as WP Toolkit or Softaculous), the WP-CLI command wp user update, or by editing the user_pass field in phpMyAdmin with the MD5 function selected. All three change the password directly on the server, so no email is needed.

Yes. WordPress 6.8 and newer use bcrypt by default, but WordPress still accepts an MD5 password hash set in phpMyAdmin and automatically upgrades it to bcrypt the first time you log in successfully.

You can find your WordPress admin username in the user_login column of the wp_users table in phpMyAdmin, or by running wp user list --role=administrator in WP-CLI. WordPress also lets you log in with the account’s email address instead of the username.

A WordPress password reset link shows as invalid when it has expired (links expire after 24 hours by default) or when a newer reset request replaced it. Request one fresh link, use only the most recent email, or skip email entirely and reset the password from your hosting panel or database.

Resetting a WordPress password through phpMyAdmin is safe if you edit only the user_pass field and select the MD5 function. Take a database backup first, log in immediately afterward so WordPress upgrades the hash, and then set a new password from your profile.

Leave a Reply

Your email address will not be published. Required fields are marked *