1.普通用户忘记密码
直接使用超级用户去登录,然后修改就行:语句如下
alter user 'lq'@'%' identified by 'sanchuang123456';
2.root用户忘记密码
解决方案一:
使用另一个管理员账户去修改root用户的密码:
alter user 'root'@'localhost' identified by '123456';
解决方案二(需要停止mysql服务,意味着中断业务,代价高,一般是没有没有管理员用户时的解决方案):
1.停止mysql :
service mysqld stop
2.修改配置文件,在[mysqld]加一段配置
vim /etc/my.cnf
[mysqld]
user=mysql ---指定启动mysql进程的用户,限制MySQL进程的权限,并提高整个系统的安全性。
skip-grant-tables ---作用为跳过密码认证
validate-password=off ---禁用密码复杂性策略,MySQL 不会强制要求用户设置复杂的密码
3.启动mysql进程
service mysqld start
4.登录mysql(不接密码)
mysql -uroot -p
5.刷新权限
flush privilegs
6.修改密码,指定用户为root@localhost
alter user 'root'@'localhost' identified by 'sc123456';
7.重新修改mysql的配置文件
注释#skip-grant-tables
8.重启mysql服务
service mysqld start
9.验证密码是否登录成功
mysql -uroot -p'sc123456';
其他问题:
如何创建管理员用户:
grant all on *.* to 'liquan'@'%' identified by ’sc123456‘;
创建的管理员用户除了没有grant权限以外,其他的权限都有,包括修改root用户的密码
密码破解的本质是什么?
是修改MySQL库里的user表里对应的用户的auth_string
工作中千万别忘记密码!!!