Linux系统MySQL忘记密码后重置密码

长时间没登过或管过MySQL的话忘记密码是很常见的情况。

MySQL ‌无法找回明文密码‌,因密码以单向哈希存储于mysql.user表,无记录可查;唯一可行方案是‌重置密码‌。‌‌

当然,你也可以先查看配置文件,万一你记录了密码呢。

配置文件位置:/etc/my.cnf

配置文件中[client]段若有password字段才可能含明文密码,当然这种不安全的配置做法不是官方推荐做法

唯一解决路径‌:通过跳过权限验证(skip_grant_tables)或读取初始化临时密码(仅限新装未改过)来‌重置‌密码,而非“找回”。‌‌

操作步骤:

一、查看MySQL服务状态

1、查看服务状态

systemctl status mysql

目录

操作步骤:

一、查看MySQL服务状态

1、查看服务状态


或者

service mysql status

这里发现没有这服务,

2、查看端口占用情况

netstat -tulnp | grep 3306

发现是有占用的,所以应该就是服务名不对,

3、查看服务名

systemctl list-units --type=service | grep mysql

4、重新查看MySQL服务状态

‌二、停止MySQL服务‌:

1、停止MySQL服务

systemctl stop mysqld

2、查看MySQL服务状态

三、以跳过权限验证的安全模式启动 MySQL 服务

mysqld_safe --skip-grant-tables &

系统提示找不到mysqld_safe,可尝试直接使用mysqld --skip-grant-tables &

mysqld --skip-grant-tables &

四、无密码登录到MySQL

mysql -u root

五、重置root密码

FLUSH PRIVILEGES;

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

退出

EXIT;

六、验证

1、重新启动MySQL服务

2、查看MySQL服务状态

3、使用密码登录验证