CentOS7以上忘记Mysql登录密码怎么办

1.vi /etc/my.cnf 打开mysql配置文件
在这里插入图片描述
2.在mysqld下增加 skip-grant-tables 保存退出
在这里插入图片描述
3.重启mysql服务 systemctl restart mysqld.service (CentOS6版本重启服务命令:service restart mysql)
在这里插入图片描述
4.这时候直接输入mysql就可以进入到mysql,不需要密码
在这里插入图片描述
5.use mysql; 切换到mysql库
在这里插入图片描述
6.输入命令:update user set authentication_string=password(‘123456’) where user=‘root’;
在这里插入图片描述
7.更改成功后输入指令:flush privileges; (立即生效)
在这里插入图片描述
8.然后exit退出mysql,再打开 my.cnf配置文件 删掉刚刚加进去的skip-grant-tables保存退出后重启mysql服务
在这里插入图片描述
9.用 mysql -uroot -p指令登录mysql密码就是刚刚设置的密码(123456)
在这里插入图片描述
10.登录进去后输入 :set password=password(‘123456’),如果没报错就说明已经修改成功,如报以下错误
Your password does not satisfy the current policy requirements(您的密码不满足当前策略要求)
在这里插入图片描述
11.就分别输入下面两个指令:
set global validate_password_policy=LOW;
set global validate_password_length=6;
在这里插入图片描述
12.最后输入:flush privileges; 立即生效,现在我们的mysql密码就已重置了。

### 如何在 CentOS 7 中重置 MySQL Root 密码 #### 停止 MySQL 服务 为了安全地重置密码,需先停止正在运行的 MySQL 或 MariaDB 服务。这可以通过 `systemctl` 工具来完成。 ```bash sudo systemctl stop mysqld.service ``` #### 启动 MySQL 跳过权限表 接着以跳过授权表的方式启动 MySQL 数据库服务器,这样可以绕过正常的认证过程: ```bash sudo mysqld_safe --skip-grant-tables & ``` 此命令会在后台启动 MySQL 实例并忽略访问控制设置[^1]。 #### 登录MySQL 控制台 此时可以直接连接至 MySQL 需要提供任何凭证信息: ```bash mysql -u root ``` 一旦进入 MySQL 提示符下,则可继续下一步操作[^2]。 #### 修改 Root 用户密码 对于同版本的 MySQL 可能存在差异化的指令集用于更新管理员账户的信息。针对较新的发行版如 MySQL 8.0 推荐采用如下 SQL 语句: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPasswordHere!'; FLUSH PRIVILEGES; ``` 上述代码片段将把本地主机上的 root 用户的新密码设为 "NewPasswordHere!" 并刷新权限缓存以便立即生效[^3]。 另一种方法涉及创建一个包含必要变更脚本的小型 .sql 文件,并通过特定参数让 MySQL 在重启时自动执行它。例如,在 `/tmp/` 下建立名为 `mysql_root_password.sql` 的文件,其内容应为: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'AnotherSecurePasswd!'; ``` 随后利用下面这条 shell 命令行组合实现无交互式的密码更改流程: ```bash cat >/tmp/mysql_root_password.sql <<EOL ALTER USER 'root'@'localhost' IDENTIFIED BY 'AnotherSecurePasswd!'; EOL sudo mysqld --user=mysql --init-file=/tmp/mysql_root_password.sql & rm /tmp/mysql_root_password.sql ``` 这种方法同样能够达到目的而且更加自动化一些[^4]。 #### 验证新密码有效性 最后一步是要确认刚刚所做的改动确实有效。为此只需再次尝试用新设定好的凭据去登陆即可: ```bash mysql -uroot -p ``` 当被提示输入密码的时候就键入刚才所定义的那个字符串看看能否顺利进入到数据库管理界面内。 #### 正常方式重新启动 MySQL 服务 完成了以上所有步骤之后记得要按照常规模式开启 MySQL 服务而是之前那种特殊状态下的做法: ```bash sudo systemctl start mysqld.service ``` 并且建议检查一下 SELinux 是否处于宽容(permissive)而非强制(enforcing),因为后者可能会阻止某些操作正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值