600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > mysql重置root密码centos_Centos7重置Mysql 8.0.1 root 密码

mysql重置root密码centos_Centos7重置Mysql 8.0.1 root 密码

时间:2022-05-13 02:58:45

相关推荐

mysql重置root密码centos_Centos7重置Mysql 8.0.1 root 密码

问题产生背景:

安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下:

第一步:修改配置文件免密码登录mysql

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服务;

3.4 使用root用户进行登录,因为上面设置了authentication_string为空,所以可以免密码登录;

mysql-uroot-p

passwrod:直接回车;

3.5使用ALTER修改root用户密码;

ALTERuser'root'@'localhost'IDENTIFIEDBY'Qian123#'

至此修改成功; 从新使用用户名密码登录即可;

修改中遇到的问题:

1. 根据网上的这篇文章进行修改,报错;

在使用这句话修改密码时报错:

updateusersetpassword=password('new-password')whereuser='root';

or

updateusersetauthentication_string=password('new-password')whereuser='root';

报错原因:mysql5.7.6以后废弃了user表中的password字段和 password() 方法;

所以上面的方法对 mysql8.0.1是行不通的;

2. 根据网友的这篇文章进行修改,报错;

3. 参考MYSQL8的官网文档, 感觉写的也很水;

4. 一定不要采取如下形式该密码:

usemysql;

updateusersetauthentication_string="newpassword"whereuser="root";

这样会给user表中root用户的authentication_string字段下设置了newpassword值;

当再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'时会报错的;

因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;

*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。