解决WordPress修改数据库表前缀后无法登陆的问题
昨晚,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 执行如下语句:
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 替换成 欢迎光临:
update `the_table` set `the_subject` = replace(`the_subject`, 'Welcome to', '欢迎光临') where instr(`the_subject`,'Welcome to') > 0
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 前端学数据结构与算法(九):常见五种排序算法的实现及其优缺点
- 用最容易的方式学会单链表(Python实现)
- 突击并发编程JUC系列-万字长文解密 JUC 面试题
- 《剑指Offer》-- 题目一:找出数组中重复的数字(Python多种方法实现)
- 用最复杂的方式学会数组(Python实现动态数组)
- 一起来刷《剑指Offer》——不修改数组找出重复的数字(思路及Python实现)
- 第一章 Go介绍
- 第二章 Go变量
- 揭秘 @available
- 第三章 Go常量、枚举、数学运算
- 通过 LLVM IR 看语言特性(1)
- Django入门笔记——第八章、模板引擎设置
- 第四章 Go语言中的控制语句
- 第六章 函数
- iPhone可以运行Android了