常怀感恩之心,常念相助之人,常忆相聚之缘,长存思念之情。

WordPress在多站点中修改数据库表前缀教程

技术文档 7368浏览 0评论

WordPress数据库的默认表前缀是“wp_”,有时出于各种需要,我们想修改一下这个前缀,尤其在开启了多站点之后。大概可以分为如下几个步骤:

1、备份数据库
使用phpMyAdmin或者帝国备份王,备份数据库先。由于数据库相对较大,所以我一般比较喜欢用帝国备份王了,phpMyAdmin主要用来进行一些语句操作等。

2、初步了解数据库
这一步其实挺重要的,如果跳过的话,容易让新手(不了解wp数据库)到后面的操作出现错误或者疑惑的时候,无所适从,不知道自己已经修改了哪些。

wordpress3.0以后,就有默认的11个数据库表:

wp_comments //评论存储在这里
wp_commentmeta //评论元
wp_links //博客链接
wp_options //管理 > 设置面板下的选项存
wp_postmeta //每篇文章的特性信息被称为元数据
wp_posts //文章
wp_terms //文章和链接分类以及文章的tag分类
wp_term_relationships //与文章有关的分类、来自wp_terms表的tags以及这一关联存
wp_term_taxonomy //描述了wp_terms表中每个条目的分类系统 (分类,链接,或tag)
wp_usermeta //每个用户的特性信息称为元数据
wp_users //用户信息


如果你的博客是开启了多站点的话,主站会有以下几个数据库表:

wp_blogs //博客的所有站点
wp_blog_versions //博客版本(ID)
wp_registration_log //新建子站点时管理员的邮箱和IP等信息
wp_signups //注册用户通过网站登录注册过程
wp_site //主站点地址
wp_sitemeta //每个站点功能的信息

子站点的数据表就会以类似wp_**_comments的形式出现,“**”通常是阿拉伯数字。子站点的数据库表没有主站点的多,一般每个子站点的数据库表是9个左右。
然后剩余的如果还有其他的数据表,那就是你博客使用的某些插件产生的数据库表了。

3、修改数据库表前缀
当我们对数据库的主要功能有了一个大概的了解之后,操作就会有信心有把握很多了。在修改数据库前缀之前,先停用你博客所有的插件。在phpMyAdmin中回到你的数据库总表,点击上面的“SQL”,进入SQL语句运行框。现在我们假设你要将wp_改成liveme_,如果没有开启多站点的博客,那么将下面的SQL语句复制粘贴到SQL运行框(注意:SQL语句代码复制时要注意引号和逗号的半角问题,全部要用英文半角),点击执行。

1
2
3
4
5
6
7
8
9
10
11
ALTER TABLE wp_comments RENAME TO liveme_comments;
ALTER TABLE wp_commentmeta RENAME TO liveme_commentmeta;
ALTER TABLE wp_links RENAME TO liveme_links;
ALTER TABLE wp_options RENAME TO liveme_options;
ALTER TABLE wp_postmeta RENAME TO liveme_postmeta;
ALTER TABLE wp_posts RENAME TO liveme_posts;
ALTER TABLE wp_terms RENAME TO liveme_terms;
ALTER TABLE wp_term_relationships RENAME TO liveme_term_relationships;
ALTER TABLE wp_term_taxonomy RENAME TO liveme_term_taxonomy;
ALTER TABLE wp_usermeta RENAME TO liveme_usermeta;
ALTER TABLE wp_users RENAME TO liveme_users;

如果你的博客开启了多站点,那么执行下面的SQL语句:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ALTER TABLE wp_comments RENAME TO liveme_comments;
ALTER TABLE wp_commentmeta RENAME TO liveme_commentmeta;
ALTER TABLE wp_links RENAME TO liveme_links;
ALTER TABLE wp_options RENAME TO liveme_options;
ALTER TABLE wp_postmeta RENAME TO liveme_postmeta;
ALTER TABLE wp_posts RENAME TO liveme_posts;
ALTER TABLE wp_terms RENAME TO liveme_terms;
ALTER TABLE wp_term_relationships RENAME TO liveme_term_relationships;
ALTER TABLE wp_term_taxonomy RENAME TO liveme_term_taxonomy;
ALTER TABLE wp_usermeta RENAME TO liveme_usermeta;
ALTER TABLE wp_users RENAME TO liveme_users;
 
ALTER TABLE wp_registration_log RENAME TO lace_registration_log;
ALTER TABLE wp_signups RENAME TO lace_signups;
ALTER TABLE wp_site RENAME TO lace_site;
ALTER TABLE wp_sitemeta RENAME TO lace_sitemeta;
ALTER TABLE wp_blogs RENAME TO lace_blogs;
ALTER TABLE wp_blog_versions RENAME TO lace_blog_versions;

同理,接着按照上面的格式,剩余还没有修改的数据库表(插件产生的数据库表和子站点的数据库表)前缀改掉。

4、修改配置文件中的数据库前缀

这一步文章开始已经说了,在wp程序的根目录的wp-config.php中将

$table_prefix = 'wp_';

改成

$table_prefix = 'liveme_';(注:liveme修改为你想使用的数据库前缀)

5、修改用户权限配置和其他的手尾工作

这个时候,我们已经可以正常访问博客了。有些低版本的wordpress有可能登陆不了后台。这时候无论我们能否登陆后台,仍旧需要进行这一步操作才完善。继续执行SQL语句(注意将liveme替换成你想要修改的前缀):

1
2
3
4
5
6
UPDATE liveme_options SET option_name = REPLACE(option_name, 'wp_user_roles', 'liveme_user_roles');
UPDATE liveme_usermeta SET meta_key = REPLACE(meta_key, 'wp_capabilities', 'liveme_capabilities');
UPDATE liveme_usermeta SET meta_key = REPLACE(meta_key, 'wp_user_level','liveme_user_level');
UPDATE liveme_usermeta SET meta_key = REPLACE(meta_key, 'wp_dashboard_quick_press_last_post_id', 'liveme_dashboard_quick_press_last_post_id');
UPDATE liveme_usermeta SET option_name = REPLACE(meta_key, 'wp_user-settings', 'liveme_user-settings');
UPDATE liveme_usermeta SET meta_key = REPLACE(meta_key, 'wp_user-settings-time', 'liveme_user-settings-time');

多站点的博客还需要检查子站点的数据库表,用同样的方法将wp_替换掉。最后为确保安全,再仔细全部检查一遍数据库中是否还存在wp_,如果有的话,可以手动操作修改。

原文链接

转载请注明:自由的风 » WordPress在多站点中修改数据库表前缀教程

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (4)

  1. 数据库果断看不懂. :kbz:

    iSayme2011-07-09 15:37 回复
  2. liveme哪里看到了

    无冷2011-07-10 20:24 回复