MySql——忘记密码怎么办

一、修改MySQL配置文件

想要在没有密码的状态下修改MySQL的密码,必须跳过MySQL登录时的登录密码权限的验证,取消掉这个验证的方式如下:

1、找到MySQL的安装文件中的my.ini文件
在这里插入图片描述
一般人应该能找到的吧,配置MySQL的环境变量中也有安装目录的,一般默认安装目录在C盘中。

2、修改my.ini
记事本方式打开my.ini,找到[mysqld]这一行,在下面加入下面两条语句:

skip-name-resolve
skip-grant-tables

注意[mysqld]是mysql+d(是小写的L,不是大写的i),最好直接复制,不然很容易输错。
在这里插入图片描述
记得ctrl+s保存好

二、重启MySQL服务

1、以管理员身份运行命令行
在这里插入图片描述
2、在命令行中输入停止MySQL服务命令:

net stop mysql

在这里插入图片描述

3、在命令行中输入开始MySQL服务命令

net start mysql

在这里插入图片描述

三、登录MySQL

在重启MySQL服务后,通过命令登录MySQL(不需要密码)

mysql -uroot -p

回车后不用输入密码,直接回车就行。
在这里插入图片描述

四、修改密码

进入到MySQL中,在命令行中输入修改命令,修改密码为123456

grant all privileges on *.* to root@'localhost' identified by '123456';

在这里插入图片描述
返回成功的话,密码就修改成功了

但有时候也会报一个错:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

在这里插入图片描述
解决办法:

刷新权限。输入一下命令后回车一下,(可以多尝试几次)

 flush privileges;

然后再重复第四步骤,修改密码,
在这里插入图片描述

五、还原MySQL配置文件

1、第一步我们修改了MySQL的配置文件my.ini,在修改成功后我们需要将配置文件还原。

在这里插入图片描述

记得保存!!!

2、重启MySQL服务

net stop mysql
net start mysql

在这里插入图片描述
3、使用新密码,登录成功
在这里插入图片描述

### 如何在Linux上重置MySQL Root用户密码 #### 停止MySQL服务 为了安全地重置MySQL的`root`用户密码,需要先停止正在运行的MySQL服务。可以使用如下命令来完成这一操作: ```bash sudo systemctl stop mysql ``` 对于某些系统版本可能需要使用mysqld作为服务名称: ```bash sudo service mysqld stop ``` #### 修改配置文件以允许无密码登录 接下来,在/etc/my.cnf或/etc/mysql/my.cnf中添加一行`skip-grant-tables`以便能够绕过权限表直接访问数据库[^5]。 #### 重启并进入MySQL环境 保存更改后的配置文件后,通过下面的指令重启MySQL服务使设置生效,并尝试不带任何参数连接至MySQL客户端工具: ```bash sudo systemctl start mysql mysql -u root ``` 如果遇到提示符要求输入密码,则只需按Enter键继续即可[^3]。 #### 更新Root用户的密码 一旦成功进入了MySQL控制台,执行刷新授权信息的操作确保最新的变更被应用: ```sql FLUSH PRIVILEGES; ``` 随后利用SQL语句改变指定主机上的root账号的新密码。这里给出两种方法之一,适用于较新的MySQL版本(5.7及以上): ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; ``` 另一种方式则是针对更早些时候发布的MySQL实例适用的方法: ```sql SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password'); ``` 请注意替换上述代码中的`new_password`为你想要设定的实际密码字符串[^4]。 #### 清理现场与测试新凭证 最后一步是要移除之前所做的临时改动——即删除my.cnf里的那行特殊指示;再重启一次MySQL让其恢复正常工作状态。此时应该能用刚刚创建好的全新认证凭据正常登陆了。 ```bash sudo vi /etc/my.cnf # 或者是其他路径下的相应文件名 # 移除 skip-grant-tables 行 sudo systemctl restart mysql ``` 验证能否凭借刚设臵过的用户名/密码组合顺利接入数据库管理系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值