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

MySQL ERROR 1045出现的原因及怎么解决

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

MySQL ERROR 1045出现的原因及怎么解决

这篇文章主要介绍“MySQL ERROR 1045出现的原因及怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL ERROR 1045出现的原因及怎么解决”文章能帮助大家解决问题。

    在命令行输入mysql -u root –p,输入密码,或通过工具连接数据库时,经常出现下面的错误信息,相信该错误信息很多人在使用MySQL时都遇到过。

    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)  

    通常从网上都能找到解决方案

    1.停止服务

    停止MySQL服务;

     # windows net stop mysql  # linux service mysqld stop

    2.跳过验证

    修改MySQL安装目录下的my.ini配置文件,使登录时跳过权限检查;

     #到mysql根目录找到mysql配置文件  vim my.ini #在my.ini,[mysqld]下添加一行,使其登录时跳过权限检查 skip_grant_tables

    3.修改密码

    启动MySQL服务,登录MySQL,此时提示输入密码,输入任意密码回车即可进入MySQL。

    #登录mysqlmysql -u root -p

    然后通过SQL语句修改root用户的密码;

    #将数据库切换至mysql库mysql> USE mysql;#修改密码mysql> UPDATE user SET password=PASSWORD(‘newpasswd')WHERE user='root'; #刷新MySQL权限相关的表mysql> flush privileges;mysql> exit;

    4.重启服务

    将my.ini文件中加入的跳过权限语句删除或加#号注释。

    重启服务,使用修改后的密码登录即可。

    原因分析

    使用root用户登录MySQL,查看user表中的用户信息如下,可以发现host的字段分别为%和localhost。

    mysql>select host,user,password from user;

    MySQL ERROR 1045出现的原因及怎么解决

    在MySQL中’%'表示可以在任何主机上登录MySQL数据库,那为什么还需要明确创建登录主机为localhost的用户呢?

    这涉及到MySQL安装时的初始化用户,匿名用户以及连接验证策略等

    下面进行深入的分析。

    在安装MySQL时,会默认初始化一些用户,比如root用户,以及host字段为localhost,user字段为空的用户。

    User字段为空的用户即为匿名用户,该用户的密码也为空,任何人都可以使用匿名用户登录MySQL数据库,但可以做的事情却是有限的,比如在命令行直接输入mysql登录,可以查看匿名用户对哪些数据库有权限:

    mysql>select current_user;

    MySQL ERROR 1045出现的原因及怎么解决

    mysql>show databases;

    MySQL ERROR 1045出现的原因及怎么解决

    通过上面的图片可以发现,匿名用户仅对information_schema和test数据库有权限。

    而匿名用户又是如何影响其他用户登录,进而出现28000错误的呢?

    当试图连接MySQL数据库时,数据库根据提供的身份和密码决定是否接受连接请求,身份由两部分组成:用户名和客户端主机(即输入mysql命令的主机)。

    由于host字段中的%匹配任何主机或者host字段包含通配符,就可能出现多个匹配行,服务器必须决定匹配哪一个,服务器将user表中的数据读入内存中,按照host和user字段对行进行排序。

    mysql>select host,user,password from user order by host desc,user desc;

    MySQL ERROR 1045出现的原因及怎么解决

    当客户端试图连接时,服务器查找已排序的行并使用第一个匹配客户端主机和用户名的行,找到匹配行后,在验证密码是否一致,如果一致则登录成功。

    user字段为空则表示可以匹配任何用户。

    此处关注:

    user为空,即任意用户,不使用密码登录localhost时,匿名用户仅对information_schema和test数据库有权限,使用其他数据库时,导致失败。

    MySQL ERROR 1045出现的原因及怎么解决

    如果user为root,密码显示为空,或host字段显示为非’%'的时候,按照默认的匹配顺序,或者提示密码错误或者提示为ERROR 1045。

    下图已修改完善,仅作参考,比如第一序列中,host为localhost或127回环地址的情况下,则会发生1045错误。

    MySQL ERROR 1045出现的原因及怎么解决

    SO 解决办法

    mysql> select host,user,password from user order by host desc,user desc;## 将排序序列中最前面的用户修改host为'%'mysql> update user set host = '%' where host = 'oracle' and user = 'root';mysql> flush privileges;

    MySQL ERROR 1045出现的原因及怎么解决

    关于“MySQL ERROR 1045出现的原因及怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

    免责声明:

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

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

    MySQL ERROR 1045出现的原因及怎么解决

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

    下载Word文档

    猜你喜欢

    MySQL ERROR 1045出现的原因及怎么解决

    这篇文章主要介绍“MySQL ERROR 1045出现的原因及怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL ERROR 1045出现的原因及怎么解决”文章能帮助大家解决问题。在命
    2023-07-02

    全面分析MySQL ERROR 1045出现的原因及解决

    目录通常从网上都能找到解决方案1.停止服务2.跳过验证3.修改密码4.重启服务原因分析SO 解决办法在命令行输入mysql -u root –p,输入密码,或通过工具连接数据库时,经常出现下面的错误信息,相信该错误信息很多人在使
    2022-07-13

    mysql连接出现1045错误怎么解决

    MySQL的错误代码1045表示访问被拒绝,通常是由于用户名或密码错误导致的。要解决此问题,可以按照以下步骤操作:1. 确认用户名和密码是否正确:检查MySQL连接的用户名和密码是否正确,确保没有输入错误。2. 检查MySQL服务器是否正在
    2023-08-11

    电脑出现黑屏的原因及怎么解决

    这篇文章主要介绍“电脑出现黑屏的原因及怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“电脑出现黑屏的原因及怎么解决”文章能帮助大家解决问题。1.电量不足。连接上电源,等过一会儿再重新开启电脑2
    2023-06-28

    pycharm中出现nomodulenamedxlwt的原因及解决

    目录pycharm出现no module named xlwt问题ModuleNotFoundError: No module named ‘xlwt‘步骤 安装xlwt模块(编辑器:Pycharm)遇到如下报错开始
    2023-05-12

    xp电脑出现红屏的原因及怎么解决

    这篇文章主要介绍“xp电脑出现红屏的原因及怎么解决”,在日常操作中,相信很多人在xp电脑出现红屏的原因及怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”xp电脑出现红屏的原因及怎么解决”的疑惑有所帮助!
    2023-06-28

    MySQL查询出现1055错误的原因及解决方法

    目录报错内容如下报错原因解决办法总结当SQL语句查询报1055错误时的解决android方法报错内容如下报错原因1.SQL语句中使用了group by,并且不需要分组的字段没有加上any_value()函数2.mysql数据库版本是大
    2023-05-19

    出现java.lang.NullPointerException的可能原因及解决方案

    出现 java.lang.NullPointerException 错误通常是因为代码中出现了一个空引用,即 null。当尝试对这个空引用进行操作时,就会出现 NullPointerException 错误。以下是可能导致该错误的几个原因:
    2023-08-16

    电脑出现蓝屏的原因及如何解决

    本篇内容介绍了“电脑出现蓝屏的原因及如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!电脑的每一次蓝屏系统都有记录,我们需要查看蓝屏记录
    2023-06-28

    PHP出现500错误的原因及解决方法

    PHP出现500错误是很常见的问题,也是很多开发者在开发和部署PHP应用程序时常常碰到的。本文将会介绍PHP出现500错误的原因及解决方法,并提供具体的代码示例帮助读者快速定位和解决问题。1. 出现500错误的原因在PHP开发中,出现5
    PHP出现500错误的原因及解决方法
    2024-03-08

    编程热搜

    目录