mysql忘了密码 重置密码

Table of Contents

    编辑mysql配置文件

    vi /etc/my.cnf
    

    在[mysqld]下面加上skip-grant-tables,如:

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    skip-grant-tables
    

    重启mysql(centos7)

    systemctl restart mysqld
    

    登录mysql后重新修改密码

    mysql -u root
    
    mysql> update mysql.user set authentication_string=PASSWORD('123456') where User='root';
    mysql> flush privileges;
    

    注意,如果通过以上操作可能还是会出现之前登录不上去的问题,所以最好再加上两个操作,可能跟数据库版本有关吧

    set password for root@localhost = password('123456'); 
    flush privileges; 
    

    最后改回my.cnf,重启mysql,用密码登录

    mysql -u root -p
    输入密码