mysql user表 空_mysql 忘记密码,重置密码,mysql.user表为空的解决办法

一、用户表有用户,直接修改密码

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

修改mysql配置文件my.cnf:

vim /etc/my.cnf

在[mysqld]中添加

skip-grant-tables

重启mysql服务,用空密码直接登录,查询用户表,有结果则按如下步骤修改,结果为空直接最后的解决办法

mysql> select Host,User,authentication_string from mysql.user;

+-----------+---------------+-------------------------------------------+

| Host | User | authentication_string |

+-----------+---------------+-------------------------------------------+

| localhost | root | *6A7A490FB9DC8C33C2B025A91737077A7E9CC5E5 |

| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| % | root | *6A7A490FB9DC8C33C2B025A91737077A7E9CC5E5 |

+-----------+---------------+-------------------------------------------+

4 rows in set (0.00 sec)

修改对应用户的密码

# 重置密码为 123456

mysql> update mysql.user set authentication_string=password('123456') where user='root'

Query OK, 2 rows affected, 1 warning (0.00 sec)

Rows matched: 2 Changed: 2 Warnings: 1

# 刷新权限,使配置生效

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

# 退出

mysql> quit

Bye

取消或注释掉my.cnf配置文件添加的选项 skip-grant-tables ,重启mysql服务,搞定收工。

二、用户表没有数据,则需要插入用户数据

mysql> select Host,User,authentication_string from mysql.user;

Empty set (0.00 sec)

# 退出登陆

mysql> exit

Bye

编辑my.cnf配置文件,添加或修改下面两项(我这没有sql_mode项):

sql_mode=NO_ENGINE_SUBSTITUTION

skip-grant-tables

停止mysql服务,启动数据库的安全模式:mysqld_safe &

使用root 空密码连接数据库: mysql -uroot -p

插入root用户数据

mysql> insert into mysql.user(Host,User,authentication_string) values("%","root",password("123456"));

Query OK, 1 row affected, 4 warnings (0.00 sec)

再次查询mysql.user表,会报错

mysql> select Host,User,authentication_string from mysql.user;

ERROR 1194 (HY000): Table 'user' is marked as crashed and should be repaired

需要修复mysql.user表

mysql> REPAIR TABLE mysql.user;

+------------+--------+----------+-------------------------------------------------+

| Table | Op | Msg_type | Msg_text |

+------------+--------+----------+-------------------------------------------------+

| mysql.user | repair | info | Wrong bytesec: 113-108- 95 at 396; Skipped |

| mysql.user | repair | info | Found block that points outside data file at 32 |

| mysql.user | repair | info | Found block that points outside data file at 36 |

| mysql.user | repair | info | Found block that points outside data file at 40 |

| mysql.user | repair | info | Found block that points outside data file at 44 |

| mysql.user | repair | info | Found block that points outside data file at 48 |

| mysql.user | repair | info | Found block that points outside data file at 52 |

| mysql.user | repair | info | Found block that points outside data file at 56 |

| mysql.user | repair | info | Found block that points outside data file at 60 |

| mysql.user | repair | warning | Number of rows changed from 4 to 3 |

| mysql.user | repair | status | OK |

+------------+--------+----------+-------------------------------------------------+

11 rows in set (0.64 sec)

# 再次查询user表

mysql> select Host,User,authentication_string from mysql.user;

+-----------+---------------+-------------------------------------------+

| Host | User | authentication_string |

+-----------+---------------+-------------------------------------------+

| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

| % | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

+-----------+---------------+-------------------------------------------+

3 rows in set (0.00 sec)

修改root用户的权限:

update mysql.user set

`Select_priv` = 'Y',

`Insert_priv` = 'Y',

`Update_priv` = 'Y',

`Delete_priv` = 'Y',

`Create_priv` = 'Y',

`Drop_priv` = 'Y',

`Reload_priv` = 'Y',

`Shutdown_priv` = 'Y',

`Process_priv` = 'Y',

`File_priv` = 'Y',

`Grant_priv` = 'Y',

`References_priv` = 'Y',

`Index_priv` = 'Y',

`Alter_priv` = 'Y',

`Show_db_priv` = 'Y',

`Super_priv` = 'Y',

`Create_tmp_table_priv` = 'Y',

`Lock_tables_priv` = 'Y',

`Execute_priv` = 'Y',

`Repl_slave_priv` = 'Y',

`Repl_client_priv` = 'Y',

`Create_view_priv` = 'Y',

`Show_view_priv` = 'Y',

`Create_routine_priv` = 'Y',

`Alter_routine_priv` = 'Y',

`Create_user_priv` = 'Y',

`Event_priv` = 'Y',

`Trigger_priv` = 'Y',

`Create_tablespace_priv` = 'Y'

where user='root';

# 更新权限

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

# 退出登陆

mysql> exit

Bye

退出mysql,将my.cnf配置文件的修改恢复

结束mysqld_safe 进程:pkill mysql

启动mysql服务: systemctl start mysql

问题解决!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

链式封装与调用

var CheckObject function(){}; CheckObject.prototype function(){checkName:function(){// codereturn this;},checkEmail:function(){// code return this;},checkPassword:function(){// codereturn this;} } //使用 var Check new CheckObject() Check.checkName().che…

全新升级的AOP框架Dora.Interception[3]: 基于特性标注的拦截器注册方式

在Dora.Interception中按照约定方式定义的拦截器可以采用多种方式注册到目标方法上。本篇文章介绍最常用的基于“特性标注”的拦截器注册方式,下一篇会介绍另一种基于(Lambda)表达式的注册方式:全新升级的AOP框架Dora.Interceptio…

在惨遭勒索病毒攻击之后,微软呼吁重新制定“数字日内瓦公约”

基于美国安全局泄露文档开发的病毒程序成为上周的主要新闻,该病毒导致全世界大量的Windows电脑瘫痪。WannaCry勒索病毒在150个国家有20万个受害者,包括英国的医院、西班牙的基础设施部门和俄罗斯的内政部。Renault在受到攻击之后关闭了几家在法国境内的工…

【代码审计】PHP代码审计---基础记录

PHP伪协议 PHP伪协议事实上是其支持的协议与封装协议,支持的种类有以下12种。 * file:// — 访问本地文件系统 * http:// — 访问 HTTP(s) 网址 * ftp:// — 访问 FTP(s) URLs * php:// — 访问各个输入/输出流(I/O streams) * zlib:// — 压…

全新升级的AOP框架Dora.Interception[4]: 基于表达式的拦截器注册

基于特性标注的拦截器注册方式仅限于将拦截器应用到自己定义的类型上,对于第三方提供的类型就无能为力了。对于Dora.Interception来说,拦截器注册本质上建立拦截器与一个或者多个目标方法之间的映射,所以最笨的方式就是利用反射的方式得到表示…

mysql8.0.12插件_MySQL8.0.12 安装及配置

MySQL8.0.12 安装及配置发布时间:2018-08-07 10:39,浏览次数:274, 标签:MySQL一.安装1.从网上下载MySQL8.0.12版本,下载地址:https://dev.mysql.com/downloads/mysql/2. 下载完成后解压我解压的路径是:D:\J…

python模块之hashlib

hashlib模块实现了多种安全哈希和信息摘要算法的通用接口,包括FIPS中定义的SHA1, SHA224, SHA256, SHA384, SHA512以及RFC 1321中定义的MD5 注意点:1. adler32及crc32哈希由zlib模块提供2. 某些算法已知存在哈希碰撞弱点 哈希算法 每个hash算法都有一个同…

记一次阿里电面经历

昨天下午(3/19)三点多钟,接到了一个杭州的电话,是阿里的。问我是否方便聊聊。我说我在上课,四点下课。然后他就四点多钟的时候又打了一次过来。项目经历上来就问我有无大型项目的经历。不好意思,我说无。。…

C语言程序设计第三次作业

(一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数。 输入输出样例1:   Enterr x: 10.0   f(10.0) 0.1 输入输出样例2:   Enter x: 234   f(234.0…

mysql数据库项目化教程郑小蓉_MySQL数据库项目化教程(高等职业教育“十三五”规划教材(软件技术专业))...

《MySQL数据库项目化教程/高等职业教育十三五规划教材(软件技术专业)》是一本介绍MySQL数据库基础知识的入门教材,采用项目驱动方式循序渐进地介绍MySQL各个模块的知识。主要内容包括:Windows下MySQL的安装,MySQL服务的启动与停止&#xff0c…

WPF-09 ManualResetEventSlim信号量

业务场景如下:WPF应用程序后台有个定时任务在接收PLC硬件数据(该线程接收完数据之后, 会重新启动一个新线程继续接收.....),当应用程序关闭时, 我们得确保接收PLC硬件数据的线程完成之后,再关闭应用程序,否则会造成数据丢失。上面的业务场景是…

【bzoj3033】太鼓达人 DFS欧拉图

题目描述 给出一个整数K,求一个最大的M,使得存在一个每个位置都是0或1的圈,圈上所有连续K位构成的二进制数两两不同。输出最大的M以及这种情况下字典序最小的方案。 输入 一个整数K。 输出 一个整数M和一个二进制串,由一个空格分隔…

Redis 集合处理

学习了列表之后,发现了Redis处理字符串的功能强大。 为了适应不同场景的需求,还有一个用的很多的就是集合。 Redis提供的集合支持的类型是字符串。并且集合中的元素值是唯一的,也就是说不能出现重复数据。 而且,集合的实现是通过哈…

fpga mysql_FPGA的一些琐碎知识整理

1.生产FPGA的厂家有:ALTERAXILINXATCELLatticeps:Altera和Xilinx主要生产一般用途FPGA,其主要产品采用SRAM工艺Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺ps: 熔丝,顾名思义:把丝熔掉,反…

使用增量备份修复DG中的GAP

问题描述 oracle中DG出现主备不同步现象,alert日志报警有gap信息,但是v$archive_gap视图查不到任何信息。同时主库上的对应归档已经删除且没有备份 解决方案 1.查询备库的scn SQL> select current_scn from v$database; 这时有可能出来的scn是以科学计…

C# 反射类Assembly用法举例

概述程序运行时,通过反射可以得到其它程序集或者自己程序集代码的各种信息,包括类、函数、变量等来实例化它们,执行它们,操作它们,实际上就是获取程序在内存中的映像,然后基于这个映像进行各种操作。Assemb…

团队作业

团队&组员: 没有组名,大概是因为我们组虽然有10个人,但是好像只起到人多的地方就容易开车搞笑,没有内涵,取出来的都是秋名山吴彦组这样的开车组名,在大家的的强烈建议和玩笑中,决定了没有组…

算法系列【希尔排序】篇

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时间复杂度:1. 平方阶 (O(n2)) 排序各类简单排序:直接插入、直接选择和冒泡排序。2. 线性对数…

sql查询索引语句_sql优化总结--基于sql语句优化和索引优化

概述最近做查询,统计和汇总。由于数据量比较庞大,大部分表数据上百万,甚至有的表数据上千万。所以在系统中做sql优化比较多,特此写一篇文章总结一下关于sql优化方面的经验。导致查询缓慢的原因1、数据量过大2、表设计不合理3、sql…

电商行业运维实践

电商行业运维实践--------------------…