Changing a wordpress user to an admin

2019-03-28 13:15发布

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?

标签: wordpress
3条回答
手持菜刀,她持情操
2楼-- · 2019-03-28 13:32

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);
查看更多
太酷不给撩
3楼-- · 2019-03-28 13:33

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';
查看更多
该账号已被封号
4楼-- · 2019-03-28 13:33

If you have already have your username and password then you just need to update capability and role into database.

Go to wp_user table and locate your ID from there i.e. in my case its 2. And then go to wp_usermeta and look for meta_key = wp_capabilities and user_id - 2. Edit that row and change meta_value to

a:1:{s:13:"administrator";s:1:"1";}.

Again go for meta_key = wp_user_level and user_id = 2. Edit that row and change meta_value to 10. Don't change other rows where user_id is not your own.

See my wp_users table. Look for the ID

See my wp_usermeta table. Look for capabilities and roles

Two queries will be fired something like these:

UPDATE `wp_usermeta` SET `meta_value` = '10' WHERE `wp_usermeta`.`umeta_id` =27;

UPDATE `wp_usermeta` SET `meta_value` = 'a:1:{s:13:"administrator";s:1:"1";}' WHERE `wp_usermeta`.`umeta_id` =26;
查看更多
登录 后发表回答