mysql找回root密码
  wpWn7yzs0oKF 2023年11月13日 29 0
skip-grant-tables
1、关闭mysql服务
略(可以kill,尽量别用kill -9)

2、参数启动mysql
bin/mysqld_safe --defaults-file=my.cnf --skip-grant-tables --skip-networking &
#在mysql8.0以skip-grant-tables选项启动,会自动启用--skip-networking
--skip-networking参数。其会让实例关闭监听端口,自然也就无法建立TCP连接,而只能通过本地socket进行连接。

3、更改密码
mysql -S /usr/local/mysql57/data/mysql.sock
5.6:
update mysql.user set password=password('123456') where host='localhost' and user='root';
5.7:
update mysql.user set authentication_string=password('123456') where host='localhost' and user='root';
8.0:
移除了PASSWORD()函数及不再支持SET PASSWORD ... = PASSWORD ('auth_string')语法。
所以需要先通过flush privileges操作触发权限表的加载,再使用alter user语句修改root用户的密码
flush privileges;
alter user 'root'@'localhost' identified by '123456';

4、刷新权限
flush privileges;

5、重启mysql
先关闭再重启
bin/mysqld_safe --defaults-file=my.cnf &

总结:
1. 如果只添加了--skip-grant-tables,修改完密码后,其实无需重启,执行flush privileges即可。
2. 从安全角度出发,建议加上--skip-networking。但因其是静态参数,将其剔除掉需要重启实例。
3. 加上--skip-networking,虽然可以屏蔽掉TCP连接,但对于本地其它用户,只要有socket文件的可读权限,都能无密码登录。还是存在安全隐患。
4. 不建议通过update的方式修改密码,更通用的其实是alter user。
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  nQkVcpdWfLDr   2023年11月13日   31   0   0 DesktopSystem重启
  3M67F8YJLxn2   2023年11月13日   94   0   0 重启
wpWn7yzs0oKF