MySQL忘记密码了怎么解决

前言:在不考虑到原来用户对关联数据库的授权问题的情况下,有以下三种思路解决

#1、登录状态下修改

说明:在登录状态的话,直接使用命令修改密码就行了
      mysql> use mysql;
      mysql> update user set password=PASSWORD('test123') where user='root' and host='localhost';

#2、安全模式修改

说明:退出数据库了的话
第一步:关闭数据库
    [root@db01 ~]# /etc/init.d/mysqld stop
第二步:安全模式启动数据库
    [root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking &
第三步:进入数据库修改密码
    [root@db01 ~]# mysql
    mysql> use mysql;
    mysql> update user set password=PASSWORD('test123') where user='root' and host='localhost';
第四步:退出数据库,重新启动数据库,使用新的密码登录数据库
    mysql> exit;
    [root@db01 ~]# /etc/init.d/mysqld restart
    [root@db01 ~]# mysql -uroot -ptest123

#3、还原mysql.user数据库初始状态

第一步:关闭数据库
    [root@db01 ~]# /etc/init.d/mysqld stop
第二步:安全模式启动数据库
    [root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking &
第三步:进入数据库修改密码
    [root@db01 ~]# mysql
    mysql> delete from mysql.user;
    mysql> INSERT INTO mysql.user VALUES ('localhost','root',PASSWORD('123'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'mysql_native_password','','N');
第四步:退出数据库,重新启动数据库,使用新的密码登录数据库
    mysql> exit;
    [root@db01 ~]# /etc/init.d/mysqld restart
    [root@db01 ~]# mysql -uroot -p123
    mysql> show databases;
补充说明:查看用户的属性
    mysql> select * from mysql.user \G;

 

posted @ 2020-05-07 21:39  Panda-Li  阅读(462)  评论(0编辑  收藏  举报