我的编程空间,编程开发者的网络收藏夹
学习永远不晚

终极解决 mysql8.0 ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

终极解决 mysql8.0 ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO)

当你在Windows系统中,以命令行方式,输入 mysql 后,提示 错误:
ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: NO)
在这里插入图片描述
请,先确认,你使用的MySQL版本,使用命令 mysql --version,注意 在 version 前 是 2 个减号,
在这里插入图片描述
首先,声明,我使用 的 MySQL 版本是:
mysql Ver 8.0.27 for Win64 on x86_64 (MySQL Community Server - GPL)
其他,MySQL 版本 ,能不能使用我提供的方法解决,暂时还没有测试,
但,如果你是和我一样的版本,用我的方法一定能解决你遇到的问题。

接下来,说明一下,
ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: NO)
问题的原理,
这里,先将报错信息,逐字解释一下,如果不感兴趣,请跳过,往下看。

ERROR 1045 (28000):
给出的是,错误和它的代码,这个不重要,

Access denied for user:
访问,拒绝了,用户,
这里的关键字,是 user,用户,
也就是说,这个错误提示信息,说明了,为什么出现这个错误,的,根本原因,是,使用了错误的用户尝试登录MySQL,

(using password: NO):
这个也没用,不用看,意思是: (使用密码了吗:并没有)

‘ODBC’@‘localhost’ :
就是这个 ODBC 用户,
也就是说,当你不指定登录用户时,Windows 在连接 MySQL 数据库的时候,就会使用这个 ODBC 用户去连接 MySQL 数据库,不管你的 MySQL 数据库中是否存在这个 ODBC 用户,Windows系统,都会使用这个 ODBC 用户去 尝试连 MySQL 数据库,个人感觉,应该是,Windows 系统对 ODBC 比较熟吧,毕竟 在 Windows中 有好多 ODBC 相关的接口
(开放数据库连接(Open Database Connectivity,ODBC))
所以,如果你不想使用 mysql -uroot -proot 这种加了两个参数(-u、 -p)方式登录 MySQL 数据库,就是想,直接 敲命令 mysql 就能进入 MySQL 控制台的话,你就需要告诉,MySQL,你不想使用 Windows 系统为你选的 ODBC 用户去连 MySQL,你想使用一个你熟悉的用户登录 MySQL,并且,在登录的时候,不想输入过多的 参数,只用一个 mysql 命令 ,就可以登录到 MySQL 控制台中,
那么,如何告诉 MySQL 呢?

就需要知道,MySQL 的,运行机理,
在 Windows 环境中,MySQL 的启动是去调用 你安装到 Windows 系统中的 mysql 服务的,
这个服务的位置在,控制面板\所有控制面板项\Windows 工具\服务(我的终端是 Windows home版)
如果,你找不到,服务,就百度一下吧,

在这里插入图片描述
在这里插入图片描述打开 服务,找到 mysql 服务,这里如果,你曾多次安装过不同版本的 MySQL 的话,可能会有其他的名称,比如 mysql57 、mysql80 等等,反正你知道它是 mysql 就行,
在这里插入图片描述
右键点击,找到的这个 mysql 服务,在弹出的下拉菜单中,点选,属性,
在这里插入图片描述就能看到,mysql 的服务,最终要调用的是,MySQL 安装路径中,bin 里的,mysqld.exe 这个应用程序,
在这里插入图片描述
而,这个 mysqld.exe 应用程序,在启动的时候,第一时间会去找 一个文件,my.ini,
这个 my.ini 文件,会告诉 mysqld 需要在启动的时候做些什么,
所以,我们只要配置好 my.ini 文件,就能告诉和指挥 MySQL 怎么做,也就能达到我们 只使用一个命令 mysql 就能登录到 MySQL 的 控制台里,而不需要 输入 繁琐的 各种参数,
所以,问题的关键,就在 这个 my.ini 文件上了。
接下来,就是去找到 my.ini 这个文件了,

很奇怪,我在 MySQL 官网上下载的这版 MySQL ,在它的安装目录中,没有 my.ini 文件,
所以,通过,全盘搜索,在一个目录下,找到了这个 my.ini 文件,
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
在这里插入图片描述可以打开(使用记事本),可以编辑,但是保存的时候报错,

在这里插入图片描述好解决,把这个 my.ini 文件从 C:\ProgramData\MySQL\MySQL Server 8.0\ 拷贝出来,粘贴到 Windows 桌面,然后进行编辑和保存,最后把这个经过编辑和保存过的 My.ini 文件,粘贴回 原来的目录下,
C:\ProgramData\MySQL\MySQL Server 8.0\
系统会提示,替换或跳过文件,点选,替换目标中的文件(R),在这里插入图片描述然后,点,继续,就可以完成,绕过 Windows 系统 权限,进行 my.ini 文件的编辑和保存了。
在这里插入图片描述但是,尝试登录 MySQL 仍然报错,

编辑了 My.ini 文件,但是,没有作用,不是因为我们的理论错误,而是,这个 my.ini 文件的位置不对,
再看一眼 ,mysql 服务的,启动路径,
在这里插入图片描述
很明显,mysql 服务 要启动的是 mysqld.exe 这个应用程序,

在这里插入图片描述

而这个应用程序 mysqld.exe 就会在它所在的 MySQL 安装路径中 寻找 它需要的 my.ini 文件,
即:
C:\Program Files\MySQL\MySQL Server 8.0\

在这里插入图片描述

而我们找到 My.ini 文件 所在 的目录是:
C:\ProgramData\MySQL\MySQL Server 8.0
在这里插入图片描述

显然,我们的现在要做的是,将编辑好的 my.ini 文件,搬运到 mysqld.exe 应用程序所在的 安装路径中,但请注意不是和 mysqld.exe 应用程序 同级的目录下面,而是 mysqld.exe 应用程序的父级目录 bin 的上一级目录中,
也就是,C:\Program Files\MySQL\MySQL Server 8.0\

在这里插入图片描述
在这里插入图片描述
查看一下,当前用户,是不是,我们想要的 root,
mysql> select user();
在这里插入图片描述
没错,

问题,解决,
也不用,停止、启动 MySQL 服务,
(net stop mysql、net start mysql)
也不用 在 my.ini 中的 [mysqld]里,skip-grant-tables
按我的方法,就能解决问题,爽不爽!

这里,补充一下,编辑 my.ini 文件需要更改的地方和内容,
打开 my.ini 文件 ,找到 [mysql] (请注意,不是 mysqld,而是 mysql )

在这里插入图片描述
然后,输入,我们想要 MySQL 使用的 登录时的用户账号和密码。
请注意,这里,账号,和密码,这两项都要填入,否则,还会报原来的错误,

其实,这个问题困扰我有些日子了,大半年了,期间找了不少网络的帖子,都是复制粘贴类型的,不解决根本问题,就是在刚刚,在 bing 上按 错误提示搜索了一下,看到一位大神的解释,恍然大悟,对,MySQL 的启动过程 有了新的了解和认识,于是立刻做了个实验,很顺利直接就成功了,马上来和大家分享一下,希望能帮到大家,少走弯路,当初确实挺烦恼的,都要砸电脑了,谢谢网络上这些大神文章的指点,保护了我的办公终端。
把我看到那篇决定性的文章粘出来,与大家共飨,

在这里插入图片描述
January the 06th 2022 Wednesday

来源地址:https://blog.csdn.net/m0_47505062/article/details/122342121

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

终极解决 mysql8.0 ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

终极解决 mysql8.0 ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO)

当你在Windows系统中,以命令行方式,输入 mysql 后,提示 错误: ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: NO
2023-08-17

mysql ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: YES)

遇到这个问题搞了很久,自己记下来。方法是百度的,亲测有效。 ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: NO) ERROR 1
2023-08-16

Mysql:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: NO)如何解决

这篇文章主要介绍“Mysql:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: NO)如何解决”,在日常操作中,相信很多人在Mysql
2023-06-30

Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO) 的解决方法

Access denied for user ‘ODBC’@‘localhost’ (using password: NO),貌似是mysql默认是不允许远程访问的。 解决方法: 停掉mysql服务找到mysql安装目录下my.ini,找到
2023-08-19

MAC解决MySQL登录ERROR 1045 (28000): Access denied for user root@localhost (using passwor)问题

发现问题 今天在MAC上安装完MYSQL后,MYSQL默认给分配了一个默认密码,但当自己在终端上使用默认密码登录的时候,总会提示一个授权失败的错误:Access denied for user ‘root’@’localhost’ (usi
2023-08-30

Mysql 1045 Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO)个人解决方法 分享一下

前言 Mysql 1045 Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO) 看了很多篇文章都没解决, 下面是我个人解决方法 分享一下 一、个人配置:系统w
2023-08-16

解决MySQL登录报ERROR 1045 (28000): Access denied for user 'root'@'localhost&am

使用mysql -uroot -p,然后输入密码登录mysql时,出现了如下错误: ERROR 1045 (28000): Access denied for user "root"@"localhost" (using password: YES) 一般这个
2016-05-02

编程热搜

目录