you do not have sufficient permissions to access this page

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 in wp-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_');


0 comments: