【2019.3】Mysql8.0数据库修改密码/无法修改密码/mysqld –skip-grant-tables无效/password不存在错误

在此先感谢论坛博客的各位大佬,因为实在是查了太多资料,连我自己究竟是在哪里拼拼凑凑出解决办法的过程都差不多快模糊了,第一次安装数据库,花了3天终于搞定了,博主的很多教程都是旧版本的指令,根本无法运行。想了想还是得写一写留个纪念。

**

一、关闭SQL

任务管理器->找到mysql.exe->结束人物进程
cmd命令行输入:net stop mysql; 服务停止中 -> 服务已停止

二、打开cmd界面,定位到mysql安装目录的bin文件下

输入 cd D:\MySQL\mysql-8.0.15-winx64\bin
(注:地址是你自己的安装目录地址)

三、启动MySQL服务的时候跳过权限表认证

很多博主是输入“mysqld --skip-grant-tables ”,但是最新的数据库版本这个命令已失效,会发现命令窗口仍然跳出下一行待输入指令。

应该输入:mysqld --console --skip-grant-tables --shared-memory
生成界面如下,此时dos窗口不能运行,再另开一个cmd窗口操作第四步。
【2019.3】Mysql8.0数据库修改密码/无法修改密码/mysqld –skip-grant-tables无效/password不存在错误

四、直接输入’mysql’免密登入数据库

输入 mysql,如果成功,显示如下界面,下一行的提示命令为mysql
【2019.3】Mysql8.0数据库修改密码/无法修改密码/mysqld –skip-grant-tables无效/password不存在错误

五、输入’ use mysql '连接权限数据库

【2019.3】Mysql8.0数据库修改密码/无法修改密码/mysqld –skip-grant-tables无效/password不存在错误

六、输入’ show tables; '(分号注意)

显示图片如下,最下面有一个user,里面就有我们想要的信息。
【2019.3】Mysql8.0数据库修改密码/无法修改密码/mysqld –skip-grant-tables无效/password不存在错误

七、** 输入:select user,host from user; 查看user信息

打*是因为这里容易出错,之前我复制黏贴输入的是select user,host,password from user;然后提示错误ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’
然后我把password给删了,就行了。
看到user里有一个’root’,host里一一对应。
【2019.3】Mysql8.0数据库修改密码/无法修改密码/mysqld –skip-grant-tables无效/password不存在错误

八、修改密码

> 输入: update mysql.user set authentication_string=‘123’ where user=‘root’;

离成功只差一步!然后就在这一步上死了无数次(吐血)
很多博主的修改方式是输入:update user set password=password(‘123’) where user=‘root’ and host=‘localhost’;
然后就会无数次报错:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘(‘123’) where user=‘root’ and host=‘localhost’’ at line 1
原因第七步其实已经讲的很清楚了,是因为数据库8.0已经没有’password’这个字段了,password字段改成了 authentication_string。所以需要将password改成authentication_string。
【2019.3】Mysql8.0数据库修改密码/无法修改密码/mysqld –skip-grant-tables无效/password不存在错误

九、刷新权限。输入:flush privileges;(必做)

最后quit数据库,还会很萌地跟你say bye。
走了这么多步终于把密码改过来了,怕忘记赶紧把步骤写出来。
愉悦地开启数据库之旅吧。
【2019.3】Mysql8.0数据库修改密码/无法修改密码/mysqld –skip-grant-tables无效/password不存在错误