一、停止服务
[root@linux-node2 ~]# systemctl stop mysql
二、忽略授权表登录
[root@linux-node2 ~]# mysqld_safe --skip-grant-tables &
[root@linux-node2 ~]# mysql
mysql [(none)]> use mysql;
mysql [mysql]> update user set password=password("456") where user="root" and host="localhost"; #更新密码
mysql [mysql]> \q
三、杀掉mysql所有进程
[root@linux-node2 ~]# pkill mysql
四、启动mysql服务
[root@linux-node2 ~]# systemctl start mysql
五、新密码登录
[root@linux-node2 ~]# mysql -uroot -p456
备注:
1、如果是5.7版本以上忘记密码应,在配置文件中,增加skip-grant-tables,然后启动服务,登录修改即可。
vim /etc/my.cnf
[mysqld]
skip-grant-tables
2、如果是第一次登录,赋予mysql密码,应该采用mysqladmin命令
[root@linux-node2 ~]# mysqladmin -uroot password 123 #设置密码为123
3、修改密码(知道旧密码)
①mysql [(none)]> update mysql.user set password=password("456") where user="root" and host="localhost";
②[root@linux-node2 ~]# mysqladmin -uroot -p123 password 456 #(123为旧密码,456位新密码)