Linux重置MySQL8.0密码

Linux重置MySQL8.0密码

系统版本:CentOS 7.5.1804
MySQL版本:8.0.28

没改过密码

MySQL版本在8.0以上安装时会自动生成一个默认的密码,这个密码比较复杂可以通过命令查看
grep 'temporary password' /var/log/mysqld.log
在这里插入图片描述
这里 ggovBlr2yg)h就是默认密码
可以通过输入这个密码进入数据库

默认密码不正确

在mysql的配置文件 /etc/mysql.cnf中增加一个跳过输密码的配置
skip-grant-tables
重新启动mysql服务
systemctl restart mysqld.service
输入密码时直接回车即可进入数据库

进入数据库后

进入数据库后,再通过修改密码的命令来修改密码

use mysql;
update user set authentication_string=password("新密码")where user="root";

如果这里成功就直接修改成功了。注意修改成功后要,将配置文件新加的删除或者注释掉。
这里要注意,mysql默认的规则是大小写、特殊字符、8位以上,必须都要满足才能修改成功。

修改失败

如果报错就用下面的方式

 update user set authentication_string='' where user='root';

将密码设置为空,然后将配置文件新加的删除或者注释掉,重新启动MySQL服务。
systemctl restart mysqld.service
进入mysql回车即可
因为没有密码,进来就要输入新密码,其他命令无效。
这里要注意,mysql默认的规则是大小写、特殊字符、8位以上,必须都要满足才能修改成功。

 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

提示OK就是修改成功

### Linux环境下重置MySQL 8.0的root用户密码Linux系统中,如果忘记了MySQL 8.0的`root`用户密码,可以通过以下方法重新设置密码: #### 停止MySQL服务 首先需要停止正在运行的MySQL服务。可以使用以下命令来完成此操作: ```bash sudo systemctl stop mysql ``` #### 启动MySQL跳过权限验证 为了能够无需密码访问数据库并更改`root`用户的密码,需要以安全模式启动MySQL服务器。执行如下命令: ```bash sudo mysqld_safe --skip-grant-tables & ``` 这条命令会绕过权限表加载,允许管理员不受限制地进入数据库。 #### 登录到MySQL 一旦MySQL以跳过授权表的方式启动成功,就可以通过简单的命令登录到MySQL客户端而不需要输入任何密码: ```bash mysql -u root ``` #### 修改root用户的密码 进入到MySQL控制台之后,先切换至`mysql`数据库: ```sql USE mysql; ``` 接着更新`root`用户的认证字符串。这里提供两种方式实现这一目标。 ##### 方法一:直接更新authentication_string字段 可以直接修改`user`表中的`authentication_string`字段为空或者设定新的哈希值: ```sql UPDATE user SET authentication_string = PASSWORD('新密码') WHERE User = 'root'; ``` 注意,在MySQL 8.0及以上版本中,`PASSWORD()`函数已被废弃,因此推荐改用插件方式进行身份验证设置[^4]。 ##### 方法二:利用ALTER USER语句改变密码 这是更为现代的方法,适用于MySQL 8.0及其后续版本。它不仅更简洁而且更加直观: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` 如果是远程连接的情况,则可能还需要考虑针对其他主机地址(如`%`)上的用户进行同样的处理[^5]: ```sql ALTER USER 'root'@'%' IDENTIFIED BY '新密码'; ``` #### 刷新权限并退出 完成上述任一步骤后,记得刷新权限使改动生效,并正常退出MySQL客户端: ```sql FLUSH PRIVILEGES; EXIT; ``` #### 恢复常规MySQL服务 最后关闭之前后台开启的安全模式实例,并重启标准的服务流程让一切恢复正常运作状态: ```bash sudo kill $(pgrep -f "mysqld_safe") sudo systemctl start mysql ``` 现在应该可以用刚刚设置的新密码去登录管理您的MySQL数据库了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值