×

WordPress: 数据库换前缀导致的问题和解决

优畅主题 Wordpress技术 2014-09-07 20:52 2,808 1 条评论

优畅昨天帮一客户迁移 WordPress,本来是很简单的事,但客户新服务器本身运行一个 WordPress,而且数据库只有一个,那么这个迁移过来的 WordPress 用的数据库表需要改『前缀』。

用 WordPress 的朋友都知道 WordPress 默认的数据表前缀是『wp_』:(注:这是默认的数据表,如果安装了其他插件有可能生成其他 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

第一步:那么第一件事就是把所以表前缀改为其他名

如改为 ooxx_(推荐用 phpmyadmin 或者 Adminer 修改)

ooxx_commentmeta
ooxx_comments
ooxx_links
ooxx_options
ooxx_postmeta
ooxx_posts
ooxx_terms
ooxx_term_relationships
ooxx_term_taxonomy
ooxx_usermeta
ooxx_users

第二步:修改 wp-config.php

找到

$table_prefix = 'wp_';

改为

$table_prefix = 'ooxx_';

这样就行了?本来以为是,因为访问博客一切正常,不过当你登录后台时,即使你是 Administrator 身份等待你的是下面这一行字:

You do not have sufficient permissions to access this page.

囧,看来还有第三步……

第三步:修改表里面 wp_ 开头的字段

1. ooxx_options:里面有个

wp_user_roles

改为

ooxx_user_roles

2. ooxx_usermeta:把里面的

wp_capabilities, wp_user_level, wp_user-settings, wp_user-settings-time, and wp_dashboard_quick_press_last_post_id

字段名的 wp_ 全部改为 ooxx_

3. 另外确保 ooxx_usermeta 表里面的 ooxx_capabilities 和 ooxx_user_level 的值如下

ooxx_capabilities should be a:1:{s:13:"administrator";s:1:"1";}
ooxx_user_level should be 10

总结:

折腾后得出简单的方法适合数据库不大的情况下:导出原来的数据库(不压缩 SQL 格式),用文本编辑器打开此导出文件,搜索替换『wp_』为『新前缀_』,导入新服务器数据库。(当然,为了准确性,不能简单地“全部替换”,最好一个一个搜索替换,免得出错),还可以使用一款插件,WP Security .新手使用这个查看修改,批量改也很简单。


如果本文对你有帮助,你可以扫描右边的二维码打赏,谢谢支持
联系优畅:uctheme#qq.com (#改为@)
微信订阅号:优畅主题(uctheme)
官网淘宝店:http://uctheme.taobao.com
版权声明:版权归 优畅主题 所有,转载请注明出处!
转载请保留链接: https://www.uctheme.com/technical/896.html
谢谢支付宝打赏
谢谢微信打赏

品牌创立:2012-11-18优畅主题

优畅主题成立于2012年11月18日,专业Wordpress导购主题开发商,拥有多年Wordpress主题设计经验,专门为淘宝客和导购客站长量身打造高端赚钱模板,我们注重细节,有着严谨的开发态度,一切从客户角度出发,如果你也喜欢 WordPress导购主题,欢迎和我们一起交流!


2 + 0 = ?

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册