方案一:
1.停止mysql
service mysql stop

2.添加一下参数到mysql配置文件‘/usr/local/mysql/my.cnf’
--skip-grant-tables

3.启动mysql
service mysql start

4.执行一下命令进入mysql
mysql

5.更新密码注意这是mysql5.7的方式
mysql>update mysql.user set authentication_string=password('123456') where user='root' and Host ='localhost';

    5.7之前的应该这样改:
    update user set password=password("123") where user="root";

6.去掉配置文件添加的参数‘--skip-grant-tables’,重启mysql,就ok了

方案二:
参考:http://www.jb51.net/article/77858.htm
1[[email protected] ~]# service mysql stop
2[[email protected] ~]# mysqld_safe --skip-grant-tables &
3[[email protected] ~]# mysqld_safe --skip-grant-tables --skip-networking &
4[[email protected] ~]# mysql -p
5mysql> update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
6mysql> flush privileges;
mysql> quit;
7[root@localhost ~]# service mysql restart