WordPress.org

Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Resetting Your Password

In WordPress, there is more than one way to set your password. In normal circumstances, you can do it through the WordPress interface. If you forget your password, WordPress has a built in recovery mechanism that uses email.

But on some hosts, especially when email isn't working right, sometimes you have to take different steps to reset your password.

Here's a list of different ways to reset a password. Any one of them will work, and you only need one to succeed. Which method you will use depends on what type of access you still have to your website.

To Change Your Password

To change your password in current versions:

  1. In the Administration Screen, menu, go to Users > All Users.
  2. Click on your username in the list to edit
  3. In the Edit User screen, scroll down to the New Password section and click Generate Password button.
  4. If you want to change the automatically generated password, overwrite it in a new password in the box provided. The strength box will show how good (strong) your password is.
  5. Click the Update User button.
Your new password takes effect immediately.

Through the automatic emailer

If you know your username or the email account in your profile, you can use the "lost password" feature of WordPress.

  • Go to your WordPress Login page (something like http://yoursite.com/wordpress/wp-login.php)
  • Click on the Lost your password? link
  • You will be taken to a page to put in some details. Enter your username or the email address on file for that account.
  • Wait happily as your new password is emailed to you.
  • Once you get your new password, login and change it to something you can remember on your profile page.

Through WP CLI

WP CLI is a command line tool for managing your WordPress installation.

1. Move into the /wordpress directory and type

$ wp user list

to see all users. Find the ID of the user you'd like to update.

2. Then, update the user

$ wp user update 1 --user_pass=$UP3RstrongP4$$w0rd

replacing "1" with the id of the user you want to update.

More on wp cli

Through MySQL/MariaDB Command Line

  1. Get an MD5 hash of your password.
    • Visit md5 Hash Generator, or...
    • Create a key with Python. or...
    • On Unix/Linux:
      1. Create file wp.txt with the new password in it (and *nothing* else)
      2. tr -d '\r\n' < wp.txt | md5sum | tr -d ' -'
      3. rm wp.txt
    • On Mac OS X:
      1. Create file wp.txt with the new password in it (and *nothing* else), then enter either of the lines below
      2. md5 -q ./wp.txt; rm ./wp.txt (If you want the MD5 hash printed out)
      3. md5 -q ./wp.txt | pbcopy; rm ./wp.txt (If you want the MD5 hash copied to the clipboard)
      4. Note that nano and vi add a line break which changes the MD5 hash. This works as well:
      5. echo -n [yourpassword] | md5
  2. "mysql -u root -p" (log in to MySQL/MariaDB)
  3. enter your mysql password
  4. "use (name-of-database)" (select WordPress database)
  5. "show tables;" (you're looking for a table name with "users" at the end)
  6. "SELECT ID, user_login, user_pass FROM (name-of-table-you-found);" (this gives you an idea of what's going on inside)
  7. "UPDATE (name-of-table-you-found) SET user_pass="(MD5-string-you-made)" WHERE ID = (id#-of-account-you-are-reseting-password-for);" (actually changes the password)
  8. "SELECT ID, user_login, user_pass FROM (name-of-table-you-found);" (confirm that it was changed)
  9. (type Control-D, to exit mysql client)

Note if you have a recent version of MySQL (version 5.x?) or any version of MariaDB, you can have MySQL/MariaDB compute the MD5 hash for you.

  1. Skip step 1. above.
  2. Do the following for step 7. instead.
    • "UPDATE (name-of-table-you-found) SET user_pass = MD5('(new-password)') WHERE ID = (id#-of-account-you-are-reseting-password-for);" (actually changes the password)

Note that even if the passwords are salted, meaning they look like $P$BLDJMdyBwegaCLE0GeDiGtC/mqXLzB0, you can still replace the password with an MD5 hash, and WordPress will let you log in. The MD5 hash will be replaced with a more secure hash upon your first login.

Through phpMyAdmin

This article is for those who have phpMyAdmin access to their database. Note: use phpMyAdmin at your own risk. If you doubt your ability to use it, seek further advice. WordPress is not responsible for loss of data.

changepw2.jpg

1. Begin by logging into phpMyAdmin and clicking databases.
2. A list of databases will appear. Click your WordPress database.

changepw3.jpg

3. All the tables in your database will appear. If not, click Structure.
4. Look for wp_users in the Table column.
5. Click on the icon for browse.
6. Locate your Username under user_login
7. Click edit (may look like a pencil icon in some versions of phpMyAdmin)

changepw6.jpg

8. Your user_id will be shown, click on Edit
9. Next to the user_pass is a long list of numbers and letters.
10. Select and delete these and type in your new password.
11. Type in the password you want to use. Just type it in normally, but remember, it is case-sensitive.
12. In this example, the new password will be 'rabbitseatcarrots'
13. Once you have done that, click the dropdown menu indicated, and select MD5 from the menu.

changepw7.jpg

14. Check that your password is actually correct, and that MD5 is in the box.

15. Click the 'Go' button to the bottom right.
16. Test the new password on the login screen. If it doesn't work, check that you've followed these instructions exactly.

 

Other Tutorials using phpMyAdmin

Through FTP

There is also an easy way to reset your password via FTP, if you're using the admin user.

1. Login to your site via FTP and download your active theme's functions.php file.

2. Edit the file and add this code to it, right at the beginning, after the first <?php:

wp_set_password( 'password', 1 );

Put in your own new password for the main admin user. The "1" is the user ID number in the wp_users table.

3. Upload the modified file back to your site.

4. After you then are able to login, make sure to go back and remove that code. It will reset your password on every page load until you do.

Using the Emergency Password Reset Script

If the other solutions listed above won't work, then try the Emergency Password Reset Script. It is not a Plugin. It is a PHP script.

Warnings 
  1. Requires you know the administrator username.
  2. It updates the administrator password and sends an email to the administrator's email address.
  3. If you don't receive the email, the password is still changed.
  4. You do not need to be logged in to use it. If you could login, you wouldn't need the script.
  5. Place this in the root of your WordPress installation. Do not upload this to your WordPress Plugins directory.
  6. Delete the script when you are done for security reasons.
Directions for use 
  1. Copy the emergency script from Emergency Password Script and put into a file called emergency.php in the root of your WordPress installation (the same directory that contains wp-config.php).
  2. In your browser, open http://example.com/emergency.php.
  3. As instructed, enter the administrator username (usually admin) and the new password, then click Update Options. A message is displayed noting the changed password. An email is sent to the blog administrator with the changed password information.
  4. Delete emergency.php from your server when you are done. Do not leave it on your server as someone else could use it to change your password.

Additional Reference