返回列表 发帖

CentOS8_重置MySQL8.0的用户密码

笺注:这是在 使用Navicat远程管理MySQL8.0 的基础上进行的。


服务器本地登录MySQL数据库:( 使用数据库管理员root@localhost )
mysql -uroot -p"P@ssw7rd" -h"localhost"
图片1.png
2021-9-2 18:07

注释: -h"localhost" 是可以省略的。


修改数据库管理员root@localhost的密码:
mysql> ALTER USER root@'localhost' IDENTIFIED BY 'P@ssw7rdnew';
Query OK, 0 rows affected (0.01 sec)


数据库管理员root@localhost使用新密码登录:
mysql -uroot -p"P@ssw7rdnew"
图片2.png
2021-9-2 18:08






######

重置MySQL8.0的数据库管理员root@localhost的密码:(不知道用户密码的情况下)

修改MySQL的主配置文件:
[root@redhat8 ~]# vi /etc/my.cnf
[mysqld]下面添加一行代码:(跳过授权表)
skip-grant-tables

如下图:(截图有省略)
图片3.png
2021-9-2 18:08


保存好配置文件后,重启MySQL:
[root@redhat8 ~]# systemctl restart mysqld


现在可以跳过密码验证,直接进入MySQL了:
mysql -u"root"
图片4.png
2021-9-2 18:09



修改数据库管理员root@localhost的密码:

mysql> update mysql.user set authentication_string = '' where User = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0


mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> ALTER USER root@'localhost' IDENTIFIED with mysql_native_password BY 'P@ssw78rd';
Query OK, 0 rows affected (0.01 sec)


再修改MySQL的主配置文件:
[root@redhat8 ~]# vi /etc/my.cnf
删除刚刚在[mysqld]下面添加的那一行代码:
图片5.png
2021-9-2 18:10


保存好配置文件后,重启MySQL:
[root@redhat8 ~]# systemctl restart mysqld


数据库管理员root@localhost的密码重置成功:
mysql -u"root" -p"P@ssw78rd"
图片6.png
2021-9-2 18:10






######

查看默认的用户密码策略:
SHOW VARIABLES LIKE 'validate_password%';
图片7.png
2021-9-2 18:11



给普通的数据库用户zhuohua@'%'修改密码:
mysql> ALTER USER zhuohua@'%' IDENTIFIED BY 'P@ssw8rd1234';
Query OK, 0 rows affected (0.00 sec)

删除普通的数据库用户zhuohua@'%':
mysql> drop user zhuohua@'%';
Query OK, 0 rows affected (0.09 sec)





相关文章:
重置MySQL5.5/5.6/5.7的用户密码

返回列表