那天,在搭建LAMP环境时,突然忘记了Mysql的root密码,就在网上找了一下重置的方法,觉得这个方法不错,虽然有点复杂,但很管用,下面给大家分享一下:

两种方法原理一样,第一种执行命令,第二种是修改配置文件:

service mysqld stop

mysqld_safe –skip-grant-tables &   //不检查权限方式进入并在后台运行

输入 mysql -uroot -p 回车进入

>use mysql;

> update user set password=PASSWORD(”yourpassword”)where user=”root”;
 //更改密码为 yourpassword

> flush privileges; 更新权限

> quit 退出

 

service mysqld restart

mysql -uroot -p
输入新密码进入

第二种方法:

1、编辑/etc/my.cnf

在[mysqld] 配置部分添加一行

skip-grant-tables
 

2、保存后重启mysql

[root@localhost etc]# service mysqld restart
Shutting down MySQL.                                       [  OK  ]
Starting MySQL.                                            [  OK  ]

3、登录数据库重新设置root密码
[root@localhost ~]# mysql -uroot -p mysql
Enter password:

直接回车进入
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.47-log Source distribution

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
| test               |
+——————–+
3 rows in set (0.00 sec)

执行下列语句

mysql> update user set password=password(”mysql”) where user=’root’;
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 

4、删除/etc/my.cnf文件中添加的“skip-grant-tables”行,重启mysql;用新设的密码就能正常登录了