Pages

Thursday, 21 February 2013

更改 WordPress 数据库表名前缀

众所周知,WordPress 在安装时候可以选择表名前缀以在同一数据库安装多个WordPress 程序。但是很多空间商,尤其是老外的虚拟主机商 允许建立多个数据库,这样为了便于管理,很多人在安装多个WordPress 程序的时候选择多个数据库而不是修改表名前缀,当然这样的方式也是被提倡的。
所谓天有不测风云,人有旦夕祸福。如若碰到多个数据库合为单个数据库的时候,头疼事情就来了,这种情况往往在从国外往国内搬的时候,国内空间商不知道为何如此吝啬
既然碰到这种情况,自然修改表名了,或者新建一个WordPress 用WordPress eXtended RSS导入(manage – export),不过这不是这里要讨论的了
更改 WordPress 数据库表名前缀步骤:
禁用所有插件,然后通过 phpmyadmin 备份你的 WordPress 数据库。
用文本编辑器打开你备份的数据库文件(*.sql),查找“wp_”,并用你准备用的表明比如“wc_”替换。
使用 phpmyadmin 将你当前数据库 WordPress 表删除。
导入你刚才修改了的备份文件。
修改wp-config.php文件,将$table_prefix = ‘wp_’; 改为 $table_prefix = ’wc_’;
到后台开启所有插件。(如果备份之前没有禁用插件,可能会导致插件工作不正常,到插件管理重新开启即可。)
顺便提一下修改表名前缀的sql语句为:
ALTER TABLE wp_benmao RENAME TO wc_benmao此句将把 wp_benmao 表更名为 wc_benmao。(要一句一句的修改)
修改回来同理。
经Dianso提醒
用户权限也需要修改,否则无法登陆后台。
update wc_options set option_name = replace(option_name,’wp_user_roles’,’wc_user_roles’)
update wc_usermeta set meta_key = replace(meta_key,’wp_capabilities’,’wc_capabilities’)
update wc_usermeta set meta_key = replace(meta_key,’wp_user_level’,’wc_user_level’)
update wc_usermeta set meta_key = replace(meta_key,’wp_autosave_draft_ids’,’wc_autosave_draft_ids’)