mysql.user表重置密码后出现表损坏问题

  首先是发现了mysql数据库无论输入什么密码,都会直接进入数据库,没有验证。接下来开始入坑:

  1  知道是因为my.ini文件中有    skip-grant-tables      可是当时不知道密码忘记了还是user表已经出现了异常,密码一直错误。

  2  第二步,修改密码,可是mysql版本是5.7,按照password无法修改密码。于是直接在可视乎里加了一个password列,噩梦出现,password倒是加上了,密码列也修改成功了。skip也删除了,mysql也进去了,可是就是无法使用数据库,必须让修改表密码,重置密码。

  3  密码每次重置,都会出现另外一个错误,表结构已经损坏,无法操作。这时候看到了要更新mysql可能可以解决问题,可是看网上更新都是需要密码的,这时候密码已经废了,彻底gg。

  4    还没gg,接下来继续把skip-grant-tables加上,数据库倒是能继续进去了,可是还是想做到只能密码进入,经历了数次循环测试之后终于决定删除user表。然后利用网上生成user表,还不行,某些东西不匹配,再次删除user表。

  5  终于,在这时候,看了这个,--secure-file-priv is set to NULL. Operations related to importing and export...  ,

    在无密码情况下,mysql_upgrade,直接更新数据库,数据表自动生成。

    而且其中建议不要将数据放在mysql的数据库中,自己新建数据库,防止数据库损坏修复时麻烦,就像以前文件不放在c盘一样。

  6  但是此时还有一个问题,就是更新后的数据表并没有权限,于是又有一个很全的博客,恢复mysql 中root 用户的所有权限  言简意赅,按照步骤一个字不用修改就完成了数据库实现user更新和修改。

  总结,数据表损坏,一,更新。 二 赋予权限,三,只通过密码,这时把 skip-grant-tables注释了

  

#更新数据表,以及版本信息不对应
mysql_upgrade  

更改root权限
1停止mysql服务器。使用skip-grant-tables 登陆。

2 手动修改用户的权限。使其可以设置权限。
UPDATE mysql.user SET Grant_priv=‘Y‘, Super_priv=‘Y‘ WHERE User=‘root‘;

3 刷新缓冲区
FLUSH PRIVILEGES;

4 设置权限
GRANT ALL ON *.* TO ‘root‘@‘localhost‘;

5查看权限
select * from mysql.user\G

  

原文地址:https://www.cnblogs.com/27floor/p/11335429.html

时间: 2024-08-30 07:19:03

mysql.user表重置密码后出现表损坏问题的相关文章

MySQL单实例重置密码的两种方法

MySQL单实例重置密码的两种方法 在工作学习中,我们有时会忘记数据库的密码,下面是MySQL单实例密码重置的步骤. 说明: (1)[[email protected] ~]# cat /etc/redhat-release CentOS release 6.7 (Final) (2)[[email protected] ~]# mysql --version mysql  Ver 14.14 Distrib 5.7.13, for Linux (i686) using  EditLine wr

struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($("#textValue").val() == "") {3                 $("#errortip").html("<font color='#FF0000'>请输入查询内容</font>")

mysql 忘记root密码,重置密码,及重置密码后权限问题不能登录的解决方案

由于一段时间没有使用MySQL,忘记了root登录密码. 决定重置下密码,搜索帮助. 参考文档: http://blog.csdn.net/odailidong/article/details/50770988 http://www.cnblogs.com/emanlee/p/4621727.html 重置密码: 1),进入mysql bin目录,目的,使用工具. 2)停止服务,开启忽略登录权限验证步骤. 3)打开另一cmd窗口,以下会忽略密码验证直接登录进MySQL命令行操作,不过此操作限制了

Redhat 启动mysql失败及重置密码

cd usr/local/mysql/mysql5.6/bin [[email protected] bin]# service mysql-libs-5.1.73-8.el6_8.x86_64 startmysql-libs-5.1.73-8.el6_8.x86_64: unrecognized service[[email protected] bin]# service mysql startmysql: unrecognized service @参考文章及原文 更新:2013-08-2

General MYSQL 复制.frm数据库文件后查看表提示表不存在 Error code: 1146

现象: 将含.frm的源数据库文件夹复制到另一Mysql环境下后,打开Mysql,查看数据库和表都无问题,但在打开数据表查看表结构和表数据时提示error code: 1146,要访问的数据表"doesn't exist" 解决: 除了复制.frm的源数据库文件夹外,还需停止mysql服务(无论是拷贝源还是拷贝目的地,mysql服务最好都停掉),然后再复制与源数据库文件夹同目录下的以下3个文件粘贴或覆盖到目的文件中,然后再启动Mysql服务即可. 拷贝以上3个文件需以停止Mysql服务

MySQL 8下忘密码后重置密码

解决方案:1):设置mysql为无密码启动  (修改MySQL的登录设置:vi /etc/my.cnf   在[mysqld]的段中加上一句:skip-grant-table)  2):重新启动mysqld,清空密码 重启mysql:service mysqld restart(这一步不能少,这是让my.cnf的修改生效) 进入mysql:mysql -u root 进入mysql后,切换数据库至mysql:use mysql; 清空密码:update user set authenticati

linux mysql 8.0 重置密码或者刷新权限问题

关于mysql user 表的主键,百度说是user + host 构成了主键 1:问题如下: [[email protected] ~]# mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)这一段是拒绝user=root,host=localhost 的用户访问,需要数据密码 解决方案:1):设置mysql为无密码启动  (修改MySQL的登录设置:v

N点主机管理系统忘记密码怎么办呢?重置密码方法(在线修改密码)请看这里

1.远程到服务器上,打开N点的程序目录,如C:\Program Files\NpointSoft\npointhost1.9.6\web.再打开admin目录,手工新建一个文件,如reset.asp.程序内容如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!--#include file="../inc/conn.asp" --> <!--#include file="../inc/npoint.asp"

Oracle大表改为分区表及表空间切换方案

Oracle大表改为分区表及表空间切换方案 一.            背景 由于之前数据库表和索引放在一个表空间导致表空间数据文件增长太快,文件数量即将达到Oracle表空间的限制,需要对表(没有分区,有些表数据量多达几十亿,文件大小TB级)进行表空间迁移,并对某些表改造为分区表. 二.            可选方案分析 1.    使用IMP/EXP 导入(import)导出(export)工具年头已久,将数据导出为二进制文件,将会在11g r2之后废弃,只用于遗留数据的导入导出 此工具可