6

我正在尝试设置生产 Wordpress 博客的本地副本。在生产中,我是用户但不是管理员,所以我试图将自己更改为本地管理员。我按照这篇博文中的说明使自己成为管理员,因此我执行了以下 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,这也没有改变任何东西。有谁知道还有什么可以尝试的吗?

4

3 回答 3

11

要设置capabilitiesuser_level您的meta_key值需要匹配您的数据库前缀。默认情况下,这是wp_(导致wp_capabilitiesand 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);
于 2012-10-27T00:27:48.357 回答
7

以下是如何使用 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';
于 2015-06-10T22:55:25.640 回答
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;
于 2012-10-26T21:41:27.120 回答