1. 用系统管理员账户停止mysql的运行

 
  1. service mysqld stop 

2. 编辑/etc/my.cnf添加skip_grant_tables选项

 
  1. vi /etc/my.cnf  
  2. …  
  3. [mysqld]  
  4. …  
  5. skip_grant_tables  
  6. … 

通过添加skip_grant_tables启动mysql,不会加载具有访问权限的数据表。

3. 启动mysql

 
  1. mysql -uroot -p  
  2. # 空密码  
  3. # 切换到mysql数据库  
  4. root@linuxjcq: (none) 09:28:44  
  5. mysql> USE mysql;  
  6. # 更改密码  
  7. root@linuxjcq: mysql 09:31:01  
  8. mysql> UPDATE user SET password=PASSWORD('new password')  
  9. -> WHERE user='root' AND host='localhost'

4. 去除配置文件中的选项

 
  1. vi /etc/my.cnf  
  2. …  
  3. [mysqld]  
  4. …  
  5. # skip_grant_tables  
  6. … 

5. 重启数据库后,使用新密码登录即可

 
  1. service mysqld restart