一、以系统的root用户登陆系统,进入终端

  [root@localhost /]#
二、杀掉mysql进程
  方法1、[root@localhost /]#killall mysqld
  方法2、[root@localhost /]#ps -aux //查看所有进程,找到mysql进程的pid
  然后
  [root@localhost /]#kill pid //pid是mysql的进程号
三、用--skip-grant-tables参数启动mysqld
  [root@localhost /]#/usr/local/mysql/bin/mysqld_safe --skip-grant-tables&
  // 其中/usr..../bin是我的mysql安装目录
  

       [root@localhost /]#/usr/local/mysql/bin/mysql          //进入mysql

  mysql> use mysql                                                 //切换到mysql database
  mysql> UPDATE user SET password=password('123456') WHERE user='root';
  //将root密码该为123456了

 

附:操作过程

[root@cat bin]# ./mysql -u root -p

Enter password:
ERROR 1045 (28000): Access denied for user (using password: YES)
 

1、杀掉mysql进程

[root@cat /]#killall mysqld
2、用--skip-grant-tables参数启动mysqld
[root@cat /]#/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables &

3、

[root@cat bin]# ./mysql -u root -p

Enter password:
Welcome to the MySQL monitor.

mysql> select * from mysql.user \G

*************************** 1. row ***************************
Host: localhost
User: root
Password: *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
 

 

mysql> set password for ); //改成相应密码

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
 

 

4、

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> set password for );

Query OK, 0 rows affected (0.00 sec)
 

mysql> select * from mysql.user \G ;

*************************** 1. row ***************************
Host: localhost
User: root
Password: