写在前面
此贴作为一个长期贴,将记录我与 MySQL “相亲相爱” 的日常生活。因版本及时间原因,部分内容可能随着时间而失效,加之每个人的部署环境(系统版本、软件依赖、配置等)不一致,能够解决我的问题的,未必能够解决你的问题。所以呢,如果真遇到了,就遇到了再说吧(。・ω・。)。
本文不会特意更新,换句话说,这里出现的内容,至少都是我实际生产环境中遇到/涉及到的,因此自然无法和其它完善的教程相比,相当于是个“错题本”,方便查阅~
MySQL8.4 重置 root 密码
起因是迁移 waline 数据库的时候创建了新库,但是部署服务是在几天之后,然后想进数据库创建用户的时候发现密码忘了,也没有记在哪里,尝试了几个可能的密码都不对,就只能重置了。
-
停止 MySQL 服务
systemctl stop mysqld
-
修改配置文件跳过认证
# my.cnf vim /etc/my.cnf # 添加这行 skip_grant_tables=1
- 启动 MySQL
systemctl start mysqld
-
登录MySQL:此时可以直接回车进入,然后设置密码为空(加密,不能直接设置):
mysql -uroot -p
use mysql; update user set authentication_string='' where user='root'; quit
-
修改配置文件,把加的那一行删掉或者注释掉,然后重启 MySQL。
systemctl restart mysqld
-
退出之后重新登录,直接回车进入,然后修改密码:
alter user 'root'@'localhost' identified by 'MySQL@2024';
还看到有一种情况改配置 `my.cnf` 是不生效的,可以看一下这个帖子的内容。
请登录后查看回复内容