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?
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.
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.
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);
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';
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With