忘记mysql数据库root账户密码如何修改

当忘记MySQL登录密码时,可以通过以下步骤进行修改:首先结束mysqld.exe进程,然后在命令行输入mysqld--skip-grant-tables启动MySQL但跳过权限验证。接着,新开一个命令行窗口,连接到MySQL并选择mysql数据库。使用更新语句修改root用户的password或authentication_string字段为新密码。刷新权限后,关闭当前窗口并重启MySQL服务,删除my.cnf中的skip-grant-tables选项以恢复正常登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果知道密码需要修改的情况下比较简单,这里主要记录下忘记mysq登录密码时如何修改。
先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的, 所以一般用户无法更改密码,除非请求管理员。

在开始下面的操作之前,先在任务管理器中结束mysqld.exe进程,确保mysql服务器端已结束运行。

1、打开cmd命令提示符,进入上一步mysql.exe所在的文件夹。
简洁方法:找到安装mysql的文件夹,进入mysql的bin目录,鼠标单击地址栏,拖选地址栏的全部文本,输入cmd,回车即可。
在这里插入图片描述

2、输入命令 mysqld --skip-grant-tables 回车。
–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
此时就跳过了mysql的用户验证;
还用上一步的方法再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了,即输入刚才的命令之后命令行就无法操作了);
在这里插入图片描述
3、直接输入mysql回车,如果成功,将出现MySQL提示符 >。
在这里插入图片描述
4、连接权限数据库: use mysql; 。
在这里插入图片描述
5、修改密码

A.第一种输入:

update user set password=password('123456') where user='root' and host='localhost';

输入以上命令如果报如下错误:

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

是因为有些mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

在这里插入图片描述
如果是上面这种情况,需要采用第二种语句:
B.第二种输入

update user set authentication_string=password('123456') where user='root' and host='localhost';

6、刷新权限:flush privileges;
在这里插入图片描述
7、退出 quit。
用刚才修改的账户和修改后的新密码就可以登录了。

提示:
修改完成以后测试,如果mysql仍能免密码登录,需要编辑my.cnf文件,删掉skip-grant-tables
这一行,然后重启MySQL,/etc/init.d/mysqld restart。
重启mysql服务,使用户名root和刚才设置的新密码root登录就ok了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值