问题产生背景:
安装完 最新版的 mysql8.0后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下:
第一步:修改配置文件免密码登录mysql
需要登录你安装mysql的电脑或者服务器,修改etc文件夹下的f 配置文件
1. vim/etc/f
1.2 在 [mysqld]最后加上如下语句 并保持退出文件;
skip-grant-tables
1.3 重启mysql服务:
servicemysqldrestart
第二步免密码登录到mysql上;直接在命令行上输入:
mysql
//或者
mysql-uroot-p
//password直接回车
第三步: 给root用户重置密码;
3.1 首先查看当前root用户相关信息,在mysql数据库的user表中;
selecthost,user,authentication_string,pluginfromuser;
host: 允许用户登录的ip‘位置’%表示可以远程;
user:当前数据库的用户名;
authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;
plugin: 密码加密方式;
3.2 如果当前root用户authentication_string字段下有内容,先将其设置为空;
usemysql;
updateusersetauthentication_string=''whereuser='root';
3.3 退出mysql, 删除/etc/f文件最后的 skip-grant-tables 重启mysql服务;
servicemysqldrestart
3.4 使用root用户进行登录,因为上面设置了authentication_string为空,所以可以免密码登录;
mysql-uroot-p
passwrod:直接回车;
3.5使用ALTER修改root用户密码;
ALTERuser'root'@'localhost'IDENTIFIEDBY'Zhige123#';
至此修改成功; 从新使用用户名密码登录即可;