通过排查客户站点,导致这个问题的原因是WordPress更换数据库换前缀不完全,迁移 WordPress中如果改变了wp_前缀需要将数据库表中前缀一起修改,如下
wp_commentmeta
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_terms
wp_term_relationships
wp_term_taxonomy
wp_usermeta
wp_users
第一步:那么第一件事就是把所以表前缀改为其他名,如改为 x2_(推荐用 phpmyadmin 或者 Adminer 修改)
x2_commentmeta
x2_comments
x2_links
x2_options
x2_postmeta
x2_posts
x2_terms
x2_term_relationships
x2_term_taxonomy
x2_usermeta
x2_users
第二步:修改 wp-config.php
找到 $table_prefix = 'wp_'; 改为 $table_prefix = 'x2_';
这样就行了?本来以为是,因为访问博客一切正常,不过当你登录后台时,即使你是 Administrator 身份等待你的是下面这一行字:
You do not have sufficient permissions to access this page.或者提示你无权限访问此页面,并自动跳转至网站首页。
导致的原因就是表头修改不完整
第三步:修改表里面 wp_ 开头的字段
1. x2_options:里面有个 wp_user_roles 改为 x2_user_roles
2. x2_usermeta:把里面的 wp_capabilities, wp_user_level, wp_user-settings, wp_user-settings-time, and wp_dashboard_quick_press_last_post_id 字段名的 wp_ 全部改为 x2_
3. 另外确保 x2_usermeta 表里面的 x2_capabilities 和 x2_user_level 的值如下
x2_capabilities should be a:1:{s:13:"administrator";s:1:"1";}
x2_user_level should be 10
总结:
折腾后得出简单的方法,适合数据库不大的情况下:导出原来的数据库(不压缩 SQL 格式),用文本编辑器打开此导出文件,搜索替换『wp_』为『新前缀_』,导入新服务器数据库。(当然,为了准确性,不能简单地“全部替换”,最好一个一个搜索替换,免得出错)
主题猫WP建站,累计帮助1300+客户成功建站,为站长提供支持!
立刻开启你的建站之旅