在用root用户登录mysql时发现密码错了

[root@gk ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

解决方法

1.停止mysqld服务

[root@gk ~]# service mysqld stop
停止 mysqld:                                                                                            [确定]


2.执行mysqld_safe --skip-grant-tables

 

[root@gk ~]# mysqld_safe --skip-grant-tables
140607 22:21:50 mysqld_safe Logging to '/var/log/mysqld.log'.
140607 22:21:50 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

3.登录mysql

 

[root@gk ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.71 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.

 

4.切换到mysql数据库

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed


5.新密码

mysql> update user set password=password('redhat')where user='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 3  Changed: 2  Warnings: 0

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

mysql> exit
Bye

 

6.重新启动mysqld服务


[root@gk ~]# service mysqld restart
停止 mysqld:                                              [确定]
正在启动 mysqld:                                          [确定]

7.用新密码进行登录

 

[root@gk ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.71 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>