加入收藏 | 设为首页 | 会员中心 | 我要投稿 徐州站长网 (https://www.0516zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

【已解决】MySQL数据库忘记root密码,Navicat修改root密码

发布时间:2022-12-20 16:05:00 所属栏目:MySql教程 来源:未知
导读: 今天准备练手一个小项目,项目配置数据库的时候,发现忘记了root密码,于是我就在网络上查找解决办法,我用的mysql的版本是比较新的8.0.27,用网络上大部分方法根本解决不了问题,所以查阅

今天准备练手一个小项目,项目配置数据库的时候,发现忘记了root密码,于是我就在网络上查找解决办法,我用的mysql的版本是比较新的8.0.27,用网络上大部分方法根本解决不了问题,所以查阅了很多资料,最终解决了问题;

我的情况:项目导入表结构用的是Navicat Premium 15,是记住密码的,所以我能进入数据库进行修改;

网络上修改root密码的方法基本解决不了MySQL高版本问题,因为高版本的MySQL废弃了password字段和password()函数,而是使用authentication_string字段表示用户密码。

如果有工具可以进入数据库,建立查询,执行相应的SQL;

如果当前root用户authentication_string字段下有内容Mysql修改密码,先将其设置为空;

USE mysql;
UPDATE user SET authentication_string = '' WHERE User='root';

然后执行以下三句SQL;

-- user表中如果没有“%”,则不执行第一条
ALTER user 'root'@'%' IDENTIFIED WITH caching_sha2_password BY '新密码';
ALTER user 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '新密码';
FLUSH PRIVILEGES;

注释:host-%表示远程连接密码

-localhost表示本地连接密码

注意:若项目中需要连接数据库应使用‘mysql_native_password’进行密码加密;

此时密码修改完成;

以上情况适用于使用工具能够登陆数据库,如果没有工具不能登陆数据库:

1. 使用Xshell连接服务器输入:sudo service mysql stop停止服务;

2. 找到配置文件my.cnf,在[mysqld]下添加skip-grant-tables 跳过登录检查;

3. 重启MySQL服务并登录;

4. 执行上述SQL语句;

5. 将第二步配置文件内容改回来;

(编辑:徐州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!