mysql忘记密码了怎么办

同事告诉我,服务器长时间不用,上面不知道有啥东西,让我看看。

我先上去sudo netstat -tulpn查看一下有哪些端口再用。

发现我可以认识3306。说明服务器上以前用过MySQL数据库。

检查一下数据库启动状态:sudo systemctl stop mysqld

 发现执行不了,换个方式试试。

sudo service mysqld status

发现stop ,说明mysql不启动的。

用sudo service mysqld start启动。

启动之后,我主要是想看看mysql库有什么内容,但是我不知道数据库的密码。

继续尝试:

sudo mysqld_safe --skip-grant-tables &

跳过密码检查,使用无密码登录

mysql -u root

执行对应的密码重置命令

USE mysql;
UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root';
FLUSH PRIVILEGES;

报错了,说unknown column 'authentication_string' in field list... ...

select version();  查看一下数据库版本,发现是5.1.73

原来是 MySQL 5.1.73 版本的问题,authentication_string 列确实不存在,因为该列是 MySQL 5.7+ 才引入的,在 MySQL 5.1 中,密码存储在 user 表的 Password 字段中。以下是适用于 MySQL 5.1.73 的重置 root 密码完整语句:

USE mysql;
UPDATE user SET Password=PASSWORD('新密码') WHERE User='root';
FLUSH PRIVILEGES;

到这里我修改了root的密码。

EXIT;

sudo service mysqld stop

sudo service mysqld start

重启一下mysql。

mysql -u root -p

使用新密码就可以登录上去了。

然后show databases;查看有哪些数据库。

use 显示出来的数据库;

show tables;

select * from 显示出来的数据表;

检查了很多表,都是空表;

我记得之前还用过好用的语句,直接把每个表有多少行数据查出来的,但是实际工作到此我就可以交差了。

有喜欢研究的小伙伴可以评论区里讨论。

最后提示:5.1.73 是非常古老的版本(2013 年已停止维护),存在安全漏洞,建议升级到 MySQL 5.7 或 8.0。

之后我还会发布项目实战良心干货,希望可以和网友一起讨论交流,也想留个关注。感谢每一位读者朋友。

                                                                                                                                                                              2025_7_3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值