MySQL8.0.26 出现错误#1045
2021/8/25 2:06:56
本文主要是介绍MySQL8.0.26 出现错误#1045,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Navicat首次连接MySQL8.0.26出现错误#1045 - Access denied for user ‘root‘@‘localhost‘(using password: YES)的解决办法:
目录
- 现象及原因分析
- 解决方案
- 注:如果是MySQL 8.0版本及以上的,请直接跳到第 4 步!!!!!!!!
- 1. 首先确保自己有my.ini文件
- 2. 在 my.ini 的代码的 [mysqld] 下添加一句 “ skip-grant-tables ”
- 3. 将 MySQL服务重新启动
- 4. ,将 MySQL 8.0 Command Line Clien 以 管理员身份 打开
- 5. 接下来进行 密码的重置 ,将下列代码依次输入
- 第一步,输入 use mysql; 回车后效果如图:
- b第二步,输入 **ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY ‘新密码’;** 回车后效果如图,不要忘记语句后面的 分号 ,同时这里要 修改成自己的密码 ,不要忘了:
- 第三步,输入 flush privileges; 回车后效果如图:
- 第四步,输入 quit; 语句后回车,窗口关闭:
- 6. 至此,密码就重置完成了,接下来就可以去 Navicat 创建新的 MySQL连接 了。
现象及原因分析
笔者在首次安装完 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服务重新启动 。具体是: 计算机或此电脑(右键) — 管理 — 服务和应用程序 — 服务 — 找到MySQL服务项 — 点击 “启动” 或 “重新启动”
4. ,将 MySQL 8.0 Command Line Clien 以 管理员身份 打开
(在进行这一步的时候要确保 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; 回车后效果如图:
b第二步,输入 ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY ‘新密码’; 回车后效果如图,不要忘记语句后面的 分号 ,同时这里要 修改成自己的密码 ,不要忘了:
第三步,输入 flush privileges; 回车后效果如图:
第四步,输入 quit; 语句后回车,窗口关闭:
6. 至此,密码就重置完成了,接下来就可以去 Navicat 创建新的 MySQL连接 了。
大功告成,点个赞,给个关注呗
这篇关于MySQL8.0.26 出现错误#1045的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南