Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing a wordpress user to an admin

Tags:

wordpress

I am trying to set up a local copy of a production Wordpress blog. On production, I am a user but not an admin, so I am trying to change myself to an admin locally. I was following the directions on this blog post to make myself an admin, so I performed the following SQL queries:

INSERT INTO usermeta(user_id,meta_key,meta_value) VALUES(376, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}');
INSERT INTO usermeta(user_id,meta_key,meta_value) VALUES(376, 'wp_user_level', 10);

Then I cleared my browser cookies and logged in again, but when I tried to navigate to http://localhost/wp-admin I still got "You do not have sufficient permissions to access this page." I even went so far as to delete my APC cache files and reload Nginx and PHP-FPM, which also didn't change anything. Does anyone know of anything else to try?

like image 289
amandawulf Avatar asked Oct 26 '12 21:10

amandawulf


People also ask

Why is my username admin on WordPress?

By default “admin” is the username suggested by WordPress for this account. What this means is that “admin” is the most common username across all WordPress sites on the web. So, if a hacker wants to get into your site, the first username he/she will try, is the admin username.

How do I change user roles in WordPress database?

If you wish to change the role of the existing user, go back to the All Users list, check the user in question and set the new role via the Change role to... option: You can also change the user role manually in the database via phpMyAdmin. NOTE: It is strongly recommended to back up the database before proceeding.


2 Answers

To set the capabilities and user_level your meta_key value needs to match your database prefix. By default this is wp_ (resulting in wp_capabilities and wp_user_level) however it would be different in your case as you don't have a prefix. The proper capabilities value is a:1:{s:13:"administrator";s:1:"1";}.

-- delete any existing values for this user
DELETE FROM usermeta WHERE user_id=376 AND (meta_key LIKE '%capabilities' OR meta_key LIKE '%user_level')
-- insert the capabilities and user_level for user_id 376
INSERT INTO usermeta(user_id,meta_key,meta_value) VALUES(376, 'capabilities', 'a:1:{s:13:"administrator";s:1:"1";}');
INSERT INTO usermeta(user_id,meta_key,meta_value) VALUES(376, 'user_level', 10);
like image 116
doublesharp Avatar answered Oct 11 '22 12:10

doublesharp


Here is how to change assign a User to the Admin Role in WordPress using MySQL statements:

-- Look at the field called "id" in the result set
---
select * from wp_users
where user_login = 'WORDPRESS_USERNAME_GOES_HERE';

-- Substitute the above "id" value in the "user_id" field below.
-- This is an integer value so do not use quotes around it
-- For example if the above "id" is the value 10 then the resulting line would be: where user_id = 10
-- 
update wp_usermeta
set meta_value = 'a:1:{s:13:"administrator";s:1:"1";}'
where user_id = USER_ID_GOES_HERE
and meta_key = 'wp_capabilities';

-- Lastly execute this statement remembering to substitute the same "id" value
update wp_usermeta
set meta_value = '10'
where user_id = USER_ID_GOES_HERE
and meta_key = 'wp_user_level';
like image 39
jambroseclarke Avatar answered Oct 11 '22 13:10

jambroseclarke