Mysql报Table 'mysql.user' doesn't exist问题的解决方法

目录
  • 发现问题
  • 问题起源:
  • 排查记录:
  • 总结

发现问题

前天突然出现了这个问题,花费了很多时间去解决问题.记录一下,希望能给大家避坑

问题起源:

周六,windows本地的mysql还能正常使用,周日早上,使用navicat连接本地mysql,一直报连接拒绝.

排查记录:

1 首先博主,去查看了一下本地Mysql服务是否启动,经过查看发现Mysql服务关闭,且无法启动.

2 因需要先确定Mysql服务无法启动的原因, 所以,去查看了一下系统的日志.

3 确定了问题,是因为Mysql自身报错,信息为Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

4 在网上查阅资料, 关于此问题解法, 结合报错信息,认为是Mysql中默认的mysql库中的user表丢失了.

5 找到安装Mysql的文件中,打开Mysql配置文件my.ini

6 通过配置文件发现,Mysql数据库保存的数据都在C盘的那个文件夹中,点开文件一看,和Mysql数据库中划分一样,里面包含多个数据库名的文件夹而mysql库中正是缺少了user表数据. 至此,问题已经全部找出.

解决方法: 1 安装Mysql的文件中data\mysql\目录下就有user表的三个文件,拷贝三个user文件到C盘的mysql数据库下,启动服务,重新设置用户和权限即可.

2 从一个新的Mysql安装包里面获取这三个user文件,拷贝三个user文件到C盘的mysql数据库下,启动服务,重新设置用户和权限即可.

总结

到此这篇关于Mysql报Table 'mysql.user' doesn't exist问题的解决方法的文章就介绍到这了,更多相关Mysql Table 'mysql.user' doesn't exist内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySql报错Table mysql.plugin doesn’t exist的解决方法

    一般产生原因是手工更改my.ini的数据库文件存放地址导致的 mysql服务启动时候找不到内置数据库"mysql",找不到那张表,就包了上述错误. 解决办法:将安装目录或之前的目录里面的"mysql"数据库拷贝到新的数据库文件存放目录即可

  • MySQL部署时提示Table mysql.plugin doesn’t exist的解决方法

    今天部署了免安装版的MySQL,出现了Table 'mysql.plugin' doesn't exist的问题,苦恼了好久,终于在网上找到了解决方案,现整理一下给大家分享: 系统环境:Win10 64位 MySQL版本:mysql-5.7.17-winX64 部署的步骤就是按照网上说的: 1:修改环境变量path,增加值C:\Program Files\mysql-5.7.17-winX64\bin 2:修改my-default.ini,重命名为my.ini,修改文件内容: # basedir

  • Mysql报Table 'mysql.user' doesn't exist问题的解决方法

    目录 发现问题 问题起源: 排查记录: 总结 发现问题 前天突然出现了这个问题,花费了很多时间去解决问题.记录一下,希望能给大家避坑 问题起源: 周六,windows本地的mysql还能正常使用,周日早上,使用navicat连接本地mysql,一直报连接拒绝. 排查记录: 1 首先博主,去查看了一下本地Mysql服务是否启动,经过查看发现Mysql服务关闭,且无法启动. 2 因需要先确定Mysql服务无法启动的原因, 所以,去查看了一下系统的日志. 3 确定了问题,是因为Mysql自身报错,信息

  • Mysql 报Row size too large 65535 的原因及解决方法

    报错信息:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535 向mysql的表插件一个字段 类型为text时,或修改一个字段类型为text时,报出上面的错误.其实我对这个错误的原因理解也不是很深,给出一些我查到的解释吧 大意是数据表中有一个设定长度为64K的字段索引,当表中字段(不知道是字段名字还是什么)不能超过这个长度,65,535所说明的是针对的是整个表的

  • mysql 5.7更改数据库的数据存储位置的解决方法

    随着MySQL数据库存储的数据逐渐变大,已经将原来的存储数据的空间占满了,导致mysql已经链接不上了.因此,必须要给存放的数据换个地方了.下面是操作过程中的一些步骤.记下来,以后日后查看. 1.修改mysql数据存放的目录 要修改两个地方,其一是修改/etc/my.cnf文件中的datadir.默认情况下: datadir=/var/lib/mysql 因为我的/data/目录比较大,所以将其改为: datadir=/data/mysql/ 还要修改/etc/init.d/mysqld文件,将

  • MySQL的自增ID(主键) 用完了的解决方法

    在 MySQL 中用很多类型的自增 ID,每个自增 ID 都设置了初始值.一般情况下初始值都是从 0 开始,然后按照一定的步长增加(一般是自增 1).一般情况下,我们都是用int(11)来作为数据表的自增 ID,在 MySQL 中只要定义了这个数的字节长度,那么就会有上限. MySQL的自增ID(主键) 用完了,怎么办? 如果用 int unsigned (int,4个字节 ), 我们可以算下最大当前声明的自增ID最大是多少,由于这里定义的是 int unsigned,所以最大可以达到2的32幂

  • mysql索引过长Specialed key was too long的解决方法

    目录 解决办法一 解决办法二 在创建要给表的时候遇到一个有意思的问题,提示Specified key was too long; max key length is 767 bytes,从描述上来看,是Key太长,超过了指定的 767字节限制 下面是产生问题的表结构 CREATE TABLE `test_table` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(1000) NOT NULL DEFAULT '',

  • mysql启动失败之mysql服务无法启动(服务没有报告任何错误)的解决方法

    目录 错误提示 尝试以下步骤,最终解决问题: 总结 错误提示 My SQL server8.0 安装后,启动失败,提示信息如下: 尝试以下步骤,最终解决问题: 1 查看host文件(C:\Windows\System32\drivers\etc\hosts),是否修改过本地域名,如果将localhost对应的地址修改过,有可能会导致连接mysql server失败. 解决方法:将localhost映射的地址注释掉 2 如果在mysql的安装路径(C:\Program Files\MySQL\My

  • MySQL主键自增会遇到的坑及解决方法

    目录 1. 为什么不用 UUID 2. 主键自增的问题 2.1 数据插入的三种形式 2.2 innodb_autoinc_lock_mode 2.3 实践 3. 小结 在上篇文章中,松哥和小伙伴们分享了 MySQL 的聚簇索引,也顺便和小伙伴们分析了为什么在 MySQL 中主键不应该使用随机字符串.但是主键不用随机字符串用什么?主键自增?主键自增就是最佳方案吗?有没有其他坑?今天我们就来讨论下这个话题. 1. 为什么不用 UUID 经过上篇文章的介绍,我们知道在 MySQL 中,主键索引就是聚簇

  • MySQL常见错误有哪些_MySQL常见错误的快速解决方法

    1. TokuFT file system space is really low and access is restricted 解决方法:修改tokudb_fs_reserve_percent参数,不过该参数是静止参数,需重启实例 2. 以上这篇MySQL常见错误有哪些_MySQL常见错误的快速解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • MySQL数据中很多换行符和回车符的解决方法

    发现问题 今天一大早客户给我打电话:"小陈儿,昨晚我往数据库导了几十万条数据,然后在web界面很多都搜不到,你们系统做的啥玩意儿啊?这么多BUG!得啵得啵得-"(省略2000字)又习惯性的喷了一遍我们这个项目做的辣鸡~~ 得得得,客户随便喷,我就当吃了个早饭了

  • MYSQL时区导致时间差了14或13小时的解决方法

    目录 CST 时区 排错过程 解决方案 MySQL时区有问题(相差13或14小时) p>我一般使用MYSQL定义字段类型时,一般使用TIMESTAMP时间戳来定义创建时间与更新时间,并将其定义为默认值为CURRENT_TIME,但是由于场景特殊,现在我需要将一个任务的开始时间与结束时间记录,并写入数据库,那么我的开始时间戳与结束时间戳则不应该是使用数据库自带的默认值的,而是应该使用我使用java代码里面传进去的LocalDateTime.now()方法.但是插入后数据我发现有问题,插入的时间比我

随机推荐