CentOS系统下忘记常常会因为种种原因忘记MySQLroot的密码,废话不多说直接进入正题(需要注意的是,由于修改密码的过程中MySQL是没有密码保护的,请确认当前环境是否安全)。

1.修改登陆设置

1
vi /etc/my.cnf

然后在[mysqld]区域追加skip-grant-tables并保存,比如:

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

2.重启mysqld服务

1
service mysqld restart

3.修改密码

直接执行mysql,然后更新密码

1
2
3
4
5
6
7
8
9
10
11
# 进入 mysql
mysql

# 切换 database
mysql> use mysql;
# 更新密码
mysql> update user set password=password('new password') where user='root';
# 刷新MySQL的系统权限相关表
mysql> flush privileges;
# 退出
mysql> quit

4.恢复登陆设置并且重启mysqld服务

将最开始在/etc/my.cnf中加的skip-grant-tables删除,并保存。然后重启mysqld服务即可。

1
service mysqld restart