wordpress更改数据表前缀

在网站管理当中,少不了要和数据库打交道,本篇基于wordpress 5.6制作,系统镜像为ubuntu18.04,数据库为mysql 5.7,并且实际步骤都亲身尝试了。网上一堆教程没讲玩完,结果导致网站炸了无数次,下面我们就来学习一下如何批量修改我们的数据表名称(完整步骤)。
以下所有代码步骤基于表前缀wp_改为new_,你的数据表不一定是这样,请根据实际修改。
友情提示:操作数据库容易炸,自己先备份吧。

查看数据表

show tables;

修改一个数据表名

ALTER TABLE 原表名 RENAME TO 新表名;

上面是单句修改的指令,我们只要使用命令批量输出以上的代码,那么就可以实现批量的修改了。

批量替换字符输出

SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO new_', substring(table_name, 4), ';' ) FROM information_schema. TABLES WHERE table_name LIKE 'wp_%';

以上指令意思为:搜索所有前缀为wp_的数据表,将其前三个字符串替换为new_,然后组合成我们需要的单句修改命令,输出在控制台(此命令只输出,不会修改数据库)。
RENAME TO new_:new_为最终输出的字符;
substring(table_name, 4):替换数据表名称前X个字符长度,自定义。
TABLES WHERE table_name LIKE ‘wp_%:wp_为你要搜索的字符。

检查一下是不是替换成了你需要的命令,确认无误之后再进行下一步。

修改数据表名称

把所有的输出语句复制下来去掉|,然后全选复制粘贴进我们的mysql命令行运行。
接下来我们还要更改对应的字段值,运行以下命令:

SELECT REPLACE(option_name, 'wp_', 'new_') FROM new_options;
SELECT REPLACE(meta_key, 'wp_', 'new_') FROM new_usermeta;

修改wp-config.php

将文件里面$table_prefix=的内容修改为你的新前缀,本文所用例子则为$table_prefix = ‘new_’。

网上大部分教程到这里就结束了,大部分没讲完整,接下来错误排查。请继续关注飞鱼ACG,后续我们将更新更多实用教程。

错误排查

上面步骤没操作好可能会出现你没有足够的权限访问该页面,如果你安装了Redis或者Memcached这类缓存插件,你可能还会出现网站排版全乱或者后台提示你的wordpress数据库已经是最新的了!。(如果你是这一类,自己检查上面步骤,或者你可以尝试继续往下操作)

如果网站前台没问题,后台你可就进不去了,报错大致为抱歉,您不能访问此页面(如果你到了这步,那么恭喜你,你离成功不远了)。

解决步骤

UPDATE `new_usermeta` SET `meta_key` = REPLACE( `meta_key` , 'wp_', 'new_' );
UPDATE `new_options` SET `option_name` = 'new_user_roles' WHERE `option_name` ='wp_user_roles';

给TA打赏
共{{data.count}}人
人已打赏
教程

Ubuntu定时清理缓存

2020-12-19 1:50:07

教程

使用bypy上传文件到百度网盘

2020-12-22 13:34:10

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索