Change WordPress Table Prefix

WordPress 安全白皮书里倡议其中一条是采用别人猜不着的数据表前缀。

想必很多WordPress Blog安装时都是采用默认的数据表前缀”wp_”,那么要让”wp_”迁移到”unguessable_”,要做三部分工作:

  1. 修改表中数据,就WordPress当前版本2.6.5而言,有三处要改
    1. 在表”wp_usermeta”中,”meta_key”字段,把”wp_capabilities” 改为 “unguessable_capabilities”
    2. 在表”wp_usermeta”中,”meta_key”字段,把”wp_user_level” 改为 “unguessable_user_level”
    3. 在表”wp_usermeta”中,”option_name”字段,把”wp_user_roles” 改为 “unguessable_user_roles”
  2. 重命名数据表(RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2] …)
  3. 修改wp-config.php,$table_prefix = “wp_” 改成 “unguessable_”

还不算复杂吧。有个plugin据说能帮你自动迁移表前缀,但我没试过,毕竟表前缀前年改一回,何必依赖一个素不相识的plugin呢?

顺便说一句,如果不做第一部分工作(修改表中数据),前台能可以工作,但后台会有”You do not have sufficient permissions to access this page.”,这错误提示很容易让人联想到密码的hash变了,是老密码无法使用了吗?其实不是,错误跟密码无关,密码还是那个密码。

Leave a Reply

Your email address will not be published. Required fields are marked *