How to create an Admin Account in WordPress via MySQL

Posted by on Mar 27, 2018 in Wordpress | No Comments

When working with programs that require you to log in, such as WordPress, there can be times when you seem to be locked out of your account. This can happen via a code error, a hack, accidental admin account deletion, or a malicious site partner changing information on you. If this happens, you will need to create a new admin account in order to regain access to the administration interface. You will need to do this by interacting directly with the database. Below is a step by step guide for doing just that in your WordPress installation.

The following instructions assume that your database table prefix is set to “wp_”. If you are using something different, then make sure to adjust your code accordingly. For example, if you are using “wptables_” instead of “wp_”, then the code “INSERT INTO `wp_users`” would be “INSERT INTO `wptables_users`”.

  1. To begin, log into your cPanel interface.
  2. From the main cPanel screen, find the Databases category and click on the icon entitled phpMyAdmin.
  3. Once the first screen appears, look to the left hand sidebar and click on the database for your specific WordPress installation.
  4. After the database information loads, you will need to find the tab named SQL and click on it.
  5. This leads you to an SQL editor where you will enter some code that will create a new admin account for you. Below is the code to create a new admin account named newadmin with the password pass123. You may change any of the content in red to fit your needs, but leave all other data as is.
  6. After replacing any data fields you need, click the Go button to perform the insertion.
    INSERT INTO `wp_users` (`user_login`, `user_pass`, `user_nicename`, `user_email`, `user_status`)
    VALUES ('newadmin', MD5('pass123'), 'firstname lastname', 'email@example.com', '0');
    
    INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) 
    VALUES (NULL, (Select max(id) FROM wp_users), 'wp_capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');
    
    INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) 
    VALUES (NULL, (Select max(id) FROM wp_users), 'wp_user_level', '10');
  7. This should simply refresh the screen and you should see the messsage ‘1 row affected‘ after each of the three SQL statements. This means the insertion ran smoothly. From here, visit your wordpress admin login area as normal and use the new admin login information. You should get to the admin interface without issue.

 

Leave a Reply