我正在尝试设置生产Wordpress博客的本地副本。在制作时,我是一个用户,但不是管理员,所以我试图将自己改为本地管理员。我正在关注this博文上的说明,以使自己成为管理员,因此我执行了以下SQL查询:
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);
然后我清除了浏览器Cookie并再次登录,但当我尝试导航到http://localhost/wp-admin
时,我仍然“您没有足够的权限访问此页面。”我甚至删除了我的APC缓存文件并重新加载Nginx和PHP-FPM,这也没有改变任何东西。有没有人知道其他任何事情要尝试?
答案 0 :(得分:9)
设置capabilities
和user_level
您的meta_key
值需要与您的数据库前缀匹配。默认情况下,这是wp_
(导致wp_capabilities
和wp_user_level
)但是在您的情况下它会有所不同,因为您没有前缀。正确的capabilities
值为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);
答案 1 :(得分:5)
以下是如何使用MySQL语句更改将用户分配到WordPress中的管理员角色:
-- 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';
答案 2 :(得分:4)
如果您已经拥有自己的用户名和密码,那么您只需要将功能和角色更新到数据库中。
转到wp_user表并从那里找到你的ID,即在我的情况下是2.然后转到wp_usermeta并查找meta_key = wp_capabilities和user_id - 2.编辑该行并将meta_value更改为
a:1:{s:13:"administrator";s:1:"1";}.
再次选择meta_key = wp_user_level和user_id = 2.编辑该行并将meta_value更改为10.不要更改user_id不属于您自己的其他行。
请参阅我的wp_users表。
请参阅我的wp_usermeta表。
将触发两个类似的查询:
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;