一、问题背景
今天闲着无聊,发现网上很多说wordpress网站的数据库前缀默认是“wp_”会存在一定风险,于是决定进行修改。
修改数据库前缀这个简单:
1、找到wp-config.php
里面的
$table_prefix
将其修改为你的自定义前缀即可,假设修改的前缀为“abc_”。
2、把wordpress数据库里所有表的前缀重命名,记住是所有的表,比如
RENAME table wp_commentmeta TO abc_commentmeta;
修改完后,顺便重启一下mysql和nginx
sudo systemctl restart mysqld
sudo systemctl restart nginx
这时再登录wordpress后台,傻眼了,竟然无法登录。然后度了一波,发现问题也比较好解决。
二、解决方案
修改wordpress数据库前缀除了开头这2步,还需要修改2个表:
wp_options
wp_usermeta
当然,假如你前面已经修改了前缀为“abc_”,那么表名就是
abc_options
abc_usermeta
1、wp_options修改
这个表需要改的是字段option_name
为“wp_user_roles”的值,统一改为“abc_user_roles”。
可以用这个sql语句:
update abc_options set option_name='abc_user_roles' where option_name like '%user_roles%';
2、wp_usermeta修改
这个表需要改的是字段
为“wp_”开头的值,统一修改为“abc_”开头。meta_key
可以用这个sql语句:
update abc_usermeta set meta_key=replace(meta_key,'wp_','abc_') where meta_key like 'wp_%';
把这2个表修改完之后,重启一下mysql和nginx,就可以顺利重新登录wordpress后台了。