Linux--忘记MySQL密码的解决方法和输入mysqld_safe --skip-grant-tables &后无法进入MySQL的解决方法

在Linux下忘记MySQL密码后我们可以通过一个mysql的参数–skip-grant-tables &轻松解决这个问题
亲测在CentOS有效
其中 --skip-grant-tables 的意思是跳过授权表,通过此参数来跳过输入密码,后面跟得 & 符号是表示设置此进程为后台进程

具体操作过程如下:
1.首先关闭掉MySQL系统服务:

service mysqld stop

这里写图片描述
2.使用命令跳过输入密码过程:

mysqld_safe --skip-grant-tables &
mysql

这里写图片描述
也可以回车之后在输入命令: mysql
这里写图片描述

3.进入 mysql数据库,然后通过语句修改密码:

use mysql
update user set password=password("root1234") where user='root'; //修改用户:root的密码成为:root1234
flush privileges//刷新MySQL的系统权限相关表,否则会出现拒绝访问 忘记输入的话重启mysql服务也可以

这里写图片描述
重启mysql系统服务后就可以用新密码进入MySQL了~

service mysqld restart

出现的问题:
一开始因为种种原因,出现了我输入命令: mysqld_safe --skip-grant-tables & 后无法进入mysql的情况

这里写图片描述

这个时候重启一下系统就好了

reboot

重启之后再按照上面的步骤走一遍就好了~

### 使用 `sudo mysqld_safe --skip-grant-tables` 启动 MySQL 服务 当需要以不检查权限表的方式启动 MySQL 服务时,可以按照如下方式操作: #### 停止当前 MySQL 服务 确保现有的 MySQL 进程已经停止运行。可以通过以下命令来实现: ```bash sudo systemctl stop mysqld ``` 或者,在某些系统上可能适用此命令: ```bash sudo service mysqld stop ``` #### 以跳过授权表模式启动 MySQL 接着,使用带有 `--skip-grant-tables` 参数的 `mysqld_safe` 来启动 MySQL 实例,这允许绕过正常的访问控制并忽略所有的用户权限设置: ```bash sudo mysqld_safe --skip-grant-tables & ``` 这条指令会在后台执行,并且不会验证用户的登录凭证。 #### 验证 MySQL 是否成功启动 为了确认 MySQL 已经正确地以前台模式启动并且正在监听连接请求,可利用下面的方法查看进程列表中是否有对应的 MySQL 进程存在: ```bash ps aux | grep mysql ``` 此时应该能够看到至少一个名为 `mysqld` 的条目表示数据库引擎已经在工作状态之中[^2]。 #### 修改 root 用户密码 (如果必要) 一旦进入了不需要认证的状态下,就可以直接通过命令行客户端连接到数据库并对账户信息做出更改。例如更新 root 密码的操作如下所示: ```sql FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` 完成上述步骤之后记得保存变更并退出 SQL 控制台。 最后一步是要恢复正常的服务运作流程——即关闭临时开启的安全模式下的实例再重新正常启动 MySQL 服务: ```bash sudo pkill -f mysqld sudo systemctl start mysqld ``` 这样就完成了整个过程,现在应当可以用新的凭据再次登陆管理界面了。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值