在mysql 5.7中刚配置好的服务器会有一个随机生成的root密码,此时需要重置密码,或者用户忘记root密码时也需要重置密码,mysql 5.7的密码重置与之前版本有所不同。
修改my.cnf,在[mysqld]字段下增加skip-grant-tables字段,用于忽略权限验证,此时service mysql restart重启服务器,然后就可以无密码登录数据库了。并且在[mysqld]下添加default_password_lifetime=0设置密码不失效。
./mysql -uroot
登录到服务器后刷新权限
FLUSH PRIVILEGES;
然后执行下面的sql修改root密码
update mysql.user set authentication_string=password('new_password') where user='root' and Host ='localhost';
刷新权限并退出mysql客户端
flush privileges; exit;
然后修改mysql.cnf,将之前添加的skip-grant-tables字段删除,保存退出。重启服务器
service mysql restart
再用mysql连接服务器试试看,此时需要密码,使用你的新密码便可以登录了。