wordpress 安全正确更改数据库表前缀
之前用了默认的数据库前缀做网站,等网站做好了,出于安全角度考虑的时候,就不想要使用默认的数据库前缀,所以就想要更改数据库表的前缀。
替换 WordPress 默认数据库前缀的办法有很多。但在这里我认为比较好的,可以让你完美地替换掉 WordPress 的数据库前缀。
更改 WordPress 数据库表名前缀步骤:(wordpress版本3.0.1)
以下更改数据库前缀教程只需要在phpmyadmin运行十几个sql命令即可。
首先做的就是更改十个表的前缀,这个简单,命令如下:
ALTER TABLE wp_commentmeta RENAME TO xzy_commentmeta;
ALTER TABLE wp_comments RENAME TO xzy_comments;
ALTER TABLE wp_options RENAME TO xzy_options;
ALTER TABLE wp_posts RENAME TO xzy_posts;
ALTER TABLE wp_postmeta RENAME TO xzy_postmeta;
ALTER TABLE wp_users RENAME TO xzy_users;
ALTER TABLE wp_usermeta RENAME TO xzy_usermeta;
ALTER TABLE wp_links RENAME TO xzy_links;
ALTER TABLE wp_terms RENAME TO xzy_terms;
ALTER TABLE wp_term_taxonomy RENAME TO xzy_term_taxonomy;
ALTER TABLE wp_term_relationships RENAME TO xzy_term_relationships;
上面的命令就是将默认的前缀wp更改为xzy_,如果你想更改成其他的前缀了,只需要把xzy_替换为你喜欢的就可以了。
然后需要在wp-config.php中找到
$table_prefix = 'wp_';
将它替换为
$table_prefix = 'xzy_';
本以为这样就完成了,但是后台发现登陆不上去了,于是再次查看数据库,发现options表中有项wp_user_roles,还有 usermeta有以下五项也需要修改:
wp_capabilities
wp_user_level
wp_user-settings
wp_user-settings-time
wp_dashboard_quick_press_last_post_id
这四项中autosave_draft_ids是日志自动保存,user_roles和user_level是权限方面的,那个 capabilities搞不懂是什么,但直觉告诉我也需要修改,所以继续在sql下运行以下命令:
update xzy_options set option_name = replace(option_name,'wp_user_roles','xzy_user_roles');
update xzy_usermeta set meta_key = replace(meta_key,'wp_capabilities','xzy_capabilities');
update xzy_usermeta set meta_key = replace(meta_key,'wp_user_level','xzy_user_level');
update xzy_usermeta set meta_key = replace(meta_key,'wp_capabilities','xzy_user-settings');
update xzy_usermeta set meta_key = replace(meta_key,'wp_user_level','xzy_user-settings-time');
update xzy_usermeta set meta_key = replace(meta_key,'wp_user_level','xzy_dashboard_quick_press_last_post_id');
这样,我们的目的也达到了,我可以保证,使用此方法可以100%保证对数据库没什么伤害,尽量不要使用编辑器等工具直接替换wp_,因为有些数据库中插件名,绝对地址,文章中都可能存在wp_这个关键词。
现在我的网站已经成功将wp_改为了xzy_,一切都正常,插件也可以不需要关闭!
|