Navicat首次连接MySQL8.0出现错误#1045 - Access denied for user ‘root‘@‘localhost‘(using password: YES)的解决办法

现象及原因分析

笔者在首次安装完 MySQL 8.0.21 之后又安装了 Navicat Premium ,然后在 新建MySQL连接 时,点击 测试连接 ,连接失败,出现了 错误1045 ,如下图所示:
1045错误
直接的原因就是 密码不对 ,但是笔者确定自己没有记错当时在安装MySQL时设定的密码,所以更深层次的原因笔者也不清楚,但是笔者通过以下方法 (就是直接改密码) ,解决了这个错误实现了连接。

附:笔者当时还有一个现象是打开MySQL 8.0 Command Line Clien,然后输入密码之后就闪退。
(原因也是输错密码了,密码错误的话MySQL 8.0 Command Line Clien也会闪退)

解决方案

注:如果是MySQL 8.0版本及以上的,请直接跳到第 4 步!!!!!!!!

1. 首先确保自己有my.ini文件,没有就新建一个, 因为笔者是用 msi 安装的,所以没有 my.ini 文件,先创建一个 文本文档 ,取名 my. txt ,然后输入下列代码,之后把 .txt 后缀名改成 .ini即可,文件放在安装目录下 \MySQL Server 8.0 还是 \MySQL Server 8.0\bin 里都可以。

**代码如下**:
[mysql]
; 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
;设置3306端口
port = 3306 
; 这里是你安装mysql的目录
basedir=D:\Softer\MySQL\MySQL Server 8.0
; 这里是设置mysql数据库的数据的存放目录
datadir=D:\Softer\MySQLData\MySQL Server 8.0\Data
; 允许最大连接数
max_connections=200
; 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
; 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

完成之后是这样的:
在这里插入图片描述
2.my.ini 的代码的 [mysqld] 下添加一句 “ skip-grant-tables ” ,之后保存退出,这个的作用是跳过密码检测,等之后改完密码还要把这个语句删掉。
代码如下

[mysql]
; 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
;设置3306端口
port = 3306 
; 这里是你安装mysql的目录
basedir=D:\Softer\MySQL\MySQL Server 8.0
; 这里是设置mysql数据库的数据的存放目录
datadir=D:\Softer\MySQLData\MySQL Server 8.0\Data
; 允许最大连接数
max_connections=200
; 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
; 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

; 跳过密码检测,之后改完密码还要删掉
skip-grant-tables

注:笔者是在最后添加了语句

3. 在上一步添加完语句之后,要将 MySQL服务重新启动 。具体是: 计算机或此电脑(右键)管理服务和应用程序服务找到MySQL服务项点击 “启动” 或 “重新启动”

在这里插入图片描述

在这里插入图片描述

4. (在进行这一步的时候要确保 MySQL服务 已经运行了!!!)开始菜单栏 ,将 MySQL 8.0 Command Line Clien管理员身份 打开,也可以选系统自带的命令行工具,不过笔者推荐用 MySQL 8.0 Command Line Clien
在这里插入图片描述

进去之后是这样的,直接 回车2下 ,进入 mysql 。笔者是 首次安装MySQL 8.0.21 ,对于 8.0版本 及以上的,一开始就能无密码进入, 无需配置my.ini ,并且添加 “ skip-grant-tables ” 语句这招对8.0之后的版本也 不起作用 了,所以之后想改密码的话,要去找找别的办法,笔者目前也还没有试过,所以接下来的步骤对于首次安装 MySQL8.0 的同志们要小心了,密码重置完就不能再用这个办法修改密码了( 慎重 )。
在这里插入图片描述
在这里插入图片描述
5. 接下来进行 密码的重置 ,将下列代码依次输入

(!!!!!!代码如下:注意copy的时候要连最后面的分号( ; )也要一起复制!!!!!!)

//第一步
mysql>use mysql;
//第二步,设置新密码,语句中‘新密码’ 要改成自己的密码
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '新密码';
//第三步
mysql>flush privileges;
//第四步
mysql>quit;

第一步,输入 use mysql; 回车后效果如图:
在这里插入图片描述
第二步,输入 ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY ‘新密码’; 回车后效果如图,不要忘记语句后面的 分号 ,同时这里要 修改成自己的密码 ,不要忘了:
在这里插入图片描述
第三步,输入 flush privileges; 回车后效果如图:
在这里插入图片描述
第四步,输入 quit; 语句后回车,窗口关闭:
在这里插入图片描述
6. 至此,密码就重置完成了,接下来就可以去 Navicat 创建新的 MySQL连接 了。

在这里插入图片描述

Navicat报错提示"1045 - Access denied for user &#39;root@localhost&#39; (using password: YES)"表示无法使用提供的密码访问MySQL数据库root用户。此错误可能有以下几个原因: 1. 密码错误:请确保您输入的密码是正确的。在MySQL 8.0之前的版本,可以使用以下命令修改密码:update mysql.user set authentication_string=password("新密码") where user="root";。而在MySQL 8.0及更高版本,可以使用以下命令修改密码:ALTER USER &#39;root&#39;@&#39;localhost&#39; IDENTIFIED WITH mysql_native_password BY &#39;新密码&#39;; 2. 权限问题:请确保root用户具有足够的权限来连接MySQL数据库。您可以使用GRANT语句为root用户授予必要的权限。 3. 主机限制:请检查MySQL配置文件中是否限制了root用户的访问主机。您可以尝试使用以下命令修改root用户的主机限制:GRANT ALL PRIVILEGES ON *.* TO &#39;root&#39;@&#39;%&#39; IDENTIFIED BY &#39;密码&#39;; FLUSH PRIVILEGES; 请根据具体情况检查和解决上述问题,并确保您的密码和权限设置正确。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Navicat报错:1045-Access denied for user root@localhost(using passwordYES)](https://blog.csdn.net/m0_67400973/article/details/126077117)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [mysql-8.0.20-macos10.15-x86_64.tar.gz](https://download.csdn.net/download/long4512524/12427861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Exticntion

跪谢大佬的赞助!祝您万事如意!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值