Have you changed the prefix of your database tables? I'm 90% sure, that this is your problem.
The thing is that WordPress uses the
$table_prefix
variable for forming the option and usermeta keys names, where it's storing the roles and capabilities information. So once you change the prefix, but don't update your db, you get this error. Here's how to fix it - execute this SQL command through phpMyAdmin, or a different interface for interacting with your DB(you can do it with PHP as well):UPDATE `{%TABLE_PREFIX%}usermeta` SET `meta_key` = replace(`meta_key`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}');
UPDATE `{%TABLE_PREFIX%}options` SET `option_name` = replace(`option_name`, '{%OLD_TABLE_PREFIX%}', '{%NEW_TABLE_PREFIX%}');
Where:
{%TABLE_PREFIX%}
is your current$table_prefix
(as set inwp-config.php
){%OLD_TABLE_PREFIX%}
is your previous$table_prefix
{%NEW_TABLE_PREFIX%}
is your new(current)$table_prefix
- it will most-likely be the same as your{%TABLE_PREFIX%}
.
So if your old
$table_prefix
was wp_test_
and your new one is wp_
, you would do this query:UPDATE `wp_usermeta` SET `meta_key` = replace(`meta_key`, 'wp_test_', 'wp_');
UPDATE `wp_options` SET `option_name` = replace(`option_name`, 'wp_test_', 'wp_');
Link to the Original Post!!!
No comments:
Post a Comment