首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >解决WordPress修改数据库表前缀后无法登陆的问题

解决WordPress修改数据库表前缀后无法登陆的问题

作者头像
张戈
发布2018-03-23 18:02:11
发布2018-03-23 18:02:11
2.2K0
举报
文章被收录于专栏:张戈的专栏张戈的专栏

昨晚,MOREOPEN 博友重装 WordPress 后发现没有任何内容,帮忙解决时,发现他的数据库居然有 3 种前缀,看来是多次安装的时没填的前缀不一致造成的。

于是,玛思阁着手帮他整理数据库:

点击查看大小,找到有数据的的表前缀,发现前缀居然是数据库名,很长很长。。。太难看了!这对于我这种强迫症患者是无法容忍的。。。我先将其他 2 个前缀的所有空表全部删除,只留下那个前缀很长的表,然后全选使用下方的修改表前缀功能,全部给改了。

重新安装 WP 后,发现原来的那个用户名登陆不了了,提示权限不足,度了一把,找到了解决办法,这就来记录下!

网上找到的方法如下(玛思阁稍作整理):


默认的表前缀为 wp_,如果你修改了 wp_config.php 中的表前缀,也就是$table_prefix=后面的内容,则您需要同步修改数据库中的表前缀,修改完成后,如果登录 wordpress 后台成功后,会返回“您没有足够的权限访问这个页面。”的提示,那也就是说您还没有完成修改,Wordpress 的代码设计严密,没有那么简单让你完成。

解决办法:打开 *_options表,找到optionname字段值为*_user_roles的栏位,改为与你修改后的前缀(*表示实际前缀)。

然后打开 *_usermeta 表,将meta-key字段中有旧前缀的值,更为新的前缀就 OK。

不知道为啥,发现在他的这个表搜索后,发现有好几千条数据!看来手动是行不通了,只好使用 SQL 语句进行局部替换了,SQL 语句如下,在 phpMyAdmin 中选定数据库后,点击工具条中的 SQL 执行如下语句:

代码语言:javascript
复制
update `new_usermeta` set `meta_key`= replace(`meta_key`,'old_','new_')  WHERE `meta_key` like "%old_%";

以上仅为示例,实际得根据新旧表前缀进行修改:

其中,new_ 表示修改后的新的前缀,old 是修改前的前缀,按照实际修改后,执行即可!

实际以上 SQL 代码也就是 MySql 的部分替换语句,不会的一起来学习下:

比如,将 the_table 表 the_subject 字段中的 Welcom to 替换成 欢迎光临:

代码语言:javascript
复制
update `the_table` set `the_subject` = replace(`the_subject`, 'Welcome to', '欢迎光临') where instr(`the_subject`,'Welcome to') > 0
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014年04月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档