一个误操作,导致mysql所有表打不开,我是不是应该删库跑路?非著名喷子

一个误操作,导致mysql所有表打不开,我是不是应该删除跑路?

最为一个net狗,对mysql不是很熟悉。一个项目用的mysql。之前用的root,这个用户权限太大,现在又建一个库,准备再新建一个用户,给相应的权限。然后开始操作:

 我发现Navicat for MySQL ,这个可视化工具,可以新建账号并设置权限,太好了,就用这个,找到了msssql 的感觉,一顿操作,新账号建好了,然后,发现,所有的 表打不开了,报这个错误:

 惨了。开始百度,谷歌,这个是什么问题,怎么解决。

尝试了很多种方法,都是要去修改mysql.user,但是我mysql.user 都打不开了,去服务器用命令行,sql语句一样打不开,问题严重了。

最后找到一个解决方法,

1、cmd下 E:mysqlmysql-8.0.18-winx64mysql-8.0.18-winx64in  下,先用mysql安全启动,跳过账号权限一系列的检测:由于mysqld –skip-grant-tables实测在mysql8.0中已失效,现使用mysqld --console --skip-grant-tables --shared-memory ,这句是关键。

2、在打开一个cmd,直接输入 mysql,回车,进去了,熟悉的尖括号回来了,然后use mysql;   select * from user where user='root' 查询root 的权限,结果发现全部是Y,除了 Select_priv` ='N' ,好了,修改这个值:update user set `Select_priv` ='Y' where user='root'

3、关闭第一个cmd,然后在第二个cmd里面正常启动mysql:net start mysql

打开Navicat for MySQL,打开表又正常了,反思一下,感觉应该是这个地方手误 取消了勾选,然后保存了。

原文地址:https://www.cnblogs.com/jiqingsishenet/p/13578218.html