cenots 7 | mysql 57 更改密码

本文详细介绍了当遇到MySQL root用户密码错误时,如何通过重置密码来解决登录问题。包括修改配置文件跳过密码认证,重启服务,更新密码,以及恢复配置等步骤。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

密码错误引起的错误,需要更改密码。
1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:

#vim /etc/my.cnf

在[mysqld]后面任意一行添加skip-grant-tables用来跳过密码验证的过程,保存文档并退出。

2.重起mysql

systemctl restart mysqld

3.重启之后输入mysql即可进入mysql。并更改密码。

mysql -uroot -p #回车即可
update mysql.user set authentication_string=password('123456') where user='root';

flush privileges;

quit

4.删除之前第一步添加的内容

vim /etc/my.cnf

找到删除即可

5.重起mysql

systemctl restart mysqld

此时可以进入mariadb

mysql -uroot -p123456
<think> 首先,用户的问题是关于解决CentOS 7服务器忘记密码的方法。我从系统指令中看到,我需要参考提供的引用内容,并在回答中自然地添加引用标识。 回顾引用内容: - 引用[1]:描述了通过grub引导菜单进入紧急救援模式来重置root密码的步骤。 - 引用[2]:提供了另一种方法,涉及在grub编辑中添加init=/bin/sh,然后重置密码。 - 引用[3]:提到了一个错误信息。 - 引用[4]:给出了修grub配置的步骤。 用户的需求是“查找解决CentOS 7服务器忘记密码的方法”,所以我应该综合这些引用,提供一个清晰的步骤指南。 系统级指令要求: - 使用$...$和$$...$$格式处理数学表达式,但在这个上下文中,可能没有数学表达式,所以我可以忽略。 - 回答使用中文。 - 生成相关问题。 - 在引用的段落末尾添加引用标识,如[^1]。 - 回答结构清晰,帮助用户逐步解决问题。 结构化回答: 1. 引言:简要介绍问题和方法。 2. 详细步骤:基于引用,描述如何重置密码。 3. 注意事项:包括潜在错误和如何解决(参考引用[3])。 4. 生成相关问题:在末尾添加相关问题。 确保引用标识: - 当引用特定部分时,在段落末尾添加如[^1]。 从引用中: - 引用[1]和[2]都提供了方法,但稍有不同: - 引用[1]:添加rd.break - 引用[2]:添加init=/bin/sh - 引用[3]提到了错误。 - 引用[4]类似于引用[1]的变体。 我应该选择一个标准的方法来避免混淆。引用[1]的方法似乎更常见,所以我将基于那个。 步骤概览: 1. 重启系统,进入grub菜单。 2. 按e编辑启动项。 3. 修linux16行,添加rd.break(或类似)。 4. 进入紧急模式。 5. 挂载sysroot为读写。 6. chroot /sysroot。 7. passwd root。 8. 退出,重启。 在回答中,我需要引用来源。 最终回答结构: - 开头:说明方法。 - 步骤列表:清晰步骤。 - 错误处理:如果有。 - 结尾:相关问题。 生成相关问题: - 基于主题,如其他方法、常见问题、安全考虑等。 相关问题想法: 1. 如果grub菜单不出现怎么办? 2. CentOS 7密码重置的其他方法? 3. 如何预防密码丢失? 4. SELinux相关的问题(参考引用[2])。 现在,起草回答。 </think>### CentOS 7服务器忘记root密码的解决方法 如果您的CentOS 7服务器忘记了root密码,可以通过修GRUB引导参数进入紧急救援模式来重置密码。以下是基于可靠参考的综合步骤指南。整个过程需在服务器物理控制台或虚拟控制台(如KVM)操作,避免远程连接中断。操作前请确保系统已关机或重启。 #### 详细步骤: 1. **重启系统并进入GRUB编辑模式**: 重启服务器,当出现GRUB引导菜单时(通常显示CentOS 7选项),快速按下键盘的 `e` 键。这会使系统暂停在编辑界面[^1][^2]。 2. **修内核启动参数**: 在编辑界面中,找到以 `linux16` 或 `linuxefi` 开头的行。在该行末尾添加参数: - 方法一:添加 `rd.break`(推荐,兼容性好)[^1][^4]。 - 方法二:或添加 `init=/bin/sh`(适用于某些环境)[^2]。 修后,该行应类似: ``` linux16 /vmlinuz-... ro rd.break ``` 或 ``` linux16 /vmlinuz-... ro init=/bin/sh ``` 完成后,按 `Ctrl+X` 启动系统,进入紧急救援模式[^1][^2]。 3. **挂载文件系统为读写模式**: 系统进入救援模式后(显示命令行提示符),输入以下命令重新挂载根目录: ```bash mount -o remount,rw /sysroot ``` 此步骤确保文件系统可修[^1][^4]。如果遇到错误(如“cannot read table of mounted file system”),可能是文件系统损坏,可尝试执行 `grep -v rootfs /proc/mounts > /etc/mtab` 修复[^3]。 4. **切换到根环境并重置密码**: 输入命令进入系统根目录: ```bash chroot /sysroot ``` 然后使用 `passwd` 命令重置root密码: ```bash passwd root ``` 按提示输入两次新密码(输入时不显示字符)。如果密码太简单,系统可能警告“BAD PASSWORD”,但可忽略并继续[^2]。 5. **处理SELinux(可选)**: 如果服务器启用了SELinux,重置密码后需更新文件标签: ```bash touch /.autorelabel ``` 这确保SELinux策略在重启后正确应用[^2]。 6. **退出并重启系统**: 执行以下命令退出chroot环境并重启: ```bash exit mount -o remount,ro /sysroot # 重新挂载为只读 reboot ``` 系统重启后,使用新密码登录root账户[^1][^2]。 #### 注意事项: - **安全风险**:此方法需物理访问服务器,操作不当可能导致系统损坏。建议在测试环境中练习。 - **适用性**:适用于CentOS 7.x版本。其他Linux发行版(如Ubuntu)方法不同。 - **常见问题**: - 如果GRUB菜单未出现,可能是引导超时设置过短。重启时反复按 `Shift` 或 `Esc` 强制显示。 - 密码重置后登录失败?检查SELinux状态(`sestatus`),确保执行了 `touch /.autorelabel`[^2]。 通过以上步骤,您可以成功重置root密码。如果您在操作中遇到具体错误,可提供更多细节以进一步协助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值