一、问题描述

mysql8忘记root密码处理方式

二、解决办法

(一)停止MySQL服务

   systemctl stop mysqld.service

(二)跳过权限表启动MySQL服务

  mysqld_safe --skip-grant-tables &,报错提示如下:  

  经排查Linux中没有mysqld_safe文件

(三)解决办法

  使用mysqld命令代替mysql_safe命令,需要通过user命令指定跳过权限表的用户

(四)root用户以无密码模式命令登录mysql

  mysql -u root

(五)刷新权限表,并设置新密码后退出。

  刷新权限表:FLUSH PRIVILEGES;

  更改密码:ALTER USER 'root'@‘localhost’ IDENTIFIED BY '新密码';

  退出:exit;

三、重启MySQL发现,可以正常关闭,启动则失败

(一)关闭MySQL服务

systemctl stop mysqld.service

(二)开启MYSQL服务

systemctl start mysqld.service

提示权限不够

四、解决办法

(一)问题提示“权限不够",查看MySQL安装目录,发现该目录下“binlog.index、binlog.000015、ib_buffer_pool”三个文件的主组和附加组变成了root用户,并且文件的修改日期均为6月27号修改root密码的时间点,故判定为问题是该三个文件所属组的问题。

ll /var/lib/mysql

(二)重新将/var/lib/mysql文件夹的主组和附加组更改为mysql

chown -R mysql:mysql mysql

(三)重新执行开启MySQL服务的命令,MySQL正常启动

五、使用更改后的密码连接MySQL,登录成功,问题解决!

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐