WordPress的默认表前缀都是wp_ ,在第一次配置Wordpress时候在数据库设置时候出现过一次,后面就找不到在哪可以改了。
但是因为各种各样的原因
1.同一服务器上同时搭建两个Wordpress网站,且数据库表前缀一样
2.然后两个网站都需要用redis开启缓存功能
3.两个网站使用同一个版本的PHP(比如都是PHP7.3)
当上面三个情况同时满足时,这个时候就会出现两个或多个网站之间的数据混乱出错,或者甲网站的用户登录后跑到了乙网站,这称之为窜库,本来想省一个数据库的,现在变的很麻烦。
所以要避免窜库,就要看好上述三点,只要不同时出现就没事。
解决思路
首先PHP版本不一样很容易,但是服务器安装多个PHP版本毕竟会占用更多性能。
redis开启缓存可以大大降低服务器的数据库读写次数,提高网站性能
所以最好的办法就是修改wp表前缀了
修改wp表前缀
注意:修改数据库前一定牢记先备份好数据库和网站,否则一旦出现失误后果严重,轻者网站打不开,重则数据库丢失就损失惨重了
一、找到网站目录文件下的wp-config.php,找到 $table_prefix = 'wp_';
把wp_改成new_ ,new_为你新的表前缀
二、修改数据库表前缀
打开phpMyAdmin数据库管理工具,把左侧看到的wp_全部改成新的表前缀new_
方法1. 点击全选前面的☑️ ,点击右边的选中项–往下拉找到修改表前缀 ,在弹出的窗口输入需要更换的表前缀内容,从 为原表前缀wp_,到 为新的表前缀,点继续即可修改所有为wp_表前缀的文字。
方法2.打开SQL,输入以下命令
下面是好运的子比主题的更换代码,包含了好运数据库的所有需要的代码,如果有子比主题的可以抄作业:
RENAME table wp_posts TO new_posts;
RENAME table wp_commentmeta TO new_commentmeta;
RENAME table wp_comments TO new_comments;
RENAME table wp_links TO new_links;
RENAME table wp_options TO new_options;
RENAME table wp_postmeta TO new_postmeta;
RENAME table wp_termmeta TO new_termmeta;
RENAME table wp_terms TO new_terms;
RENAME table wp_term_relationships TO new_term_relationships;
RENAME table wp_term_taxonomy TO new_term_taxonomy;
RENAME table wp_usermeta TO new_usermeta;
RENAME table wp_zib_message TO new_zib_message;
RENAME table wp_zibpay_card_password TO new_zibpay_card_password;
RENAME table wp_zibpay_order TO new_zibpay_order;
RENAME table wp_users TO new_users;
注意new_为你想修改的表前缀名称
以上两种方法选其一即可
修改完表前缀后,还需修改每项中的含有wp_字样的代码,具体操作为打开SQL,输入以下代码:
update new_options set option_name = replace(option_name,'wp_','new_');
update new_usermeta set meta_key = replace(meta_key,'wp_','new_');
update new_postmeta set meta_key = replace(meta_key,'wp_','new_');
注意new_为你想修改的表前缀名称
如还有少量未修改的,可以自行添加代码或手动修改即可。(此不修改会出现可以打开网站,但用户信息找不到的情况)
最后
修改完成后,如果发现可以登录用户,但管理员却不见了,无法进入Wordpress后台删除缓存,进网站目录/wp-content 下删除redis及cache相关的文件,会自动删除缓存。
现在在去尝试刷新或重新登录网站看看,是不是管理员又回来了。
暂无评论内容