1.停止MySQL
[root@localhost ~]# /etc/init.d/mysqld stop
2.往配置文件添加skip_grant_tables参数
[root@localhost ~]# sed -i '/[mysqld]/ a \skip_grant_tables' /etc/my.cnf
3.启动数据库
[root@localhost ~]# /etc/init.d/mysqld start
4.修改root密码,新密码为111111
[root@localhost ~]# password=$(mysql -e "select password('111111')" | grep -v pass)
[root@localhost ~]# mysql -e "update mysql.user set Password='${password}' from where User='root' and Host='localhost';"
5.删除配置文件的skip_grant_tables参数
[root@localhost ~]# sed -i '/skip_grant_tables/d' /etc/my.cnf
6.重启数据库
[root@localhost ~]# /etc/init.d/mysqld restart
[root@localhost ~]# mysql -uroot -p111111
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
至此,MySQL数据库的root密码重置成功;