MySQL 5.7.6+ 重置root密码

修改my.cnf配置文件
# sudo vi /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables,如下:

[mysqld] 
datadir=/var/lib/mysql  
socket=/var/lib/mysql/mysql.sock  
skip-grant-tables  
# ON/OFF/FORCE/FORCE_PLUS_PERMANENTvalidate-password=OFF 
# 是否使用密码验证该插件(及强制/永久强制使用)
validate-password=OFF  
重启服务
# sudo systemctl restart mysqld
登陆并修改密码
# mysql -uroot
# mysql> use mysql
修改密码

MySQL 5.7.6 以及最新版本:

# mysql> update user set authentication_string=PASSWORD('newpass') where User='root';

MySQL 5.7.5 或更早之前的版本r:

# mysql> update user set password=PASSWORD('newpass') where User='root';
登陆测试

将my.cnf的设置修改回来,重启MySQL服务,并登陆测试:

# mysql -u root -p