Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 420|回复: 0

[默认分类] MySQL 1045登录失败

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-6-8 10:30:57 | 显示全部楼层 |阅读模式


            当你登录MySQL数据库出现:Error 1045错误时(如下图),就表明你输入的用户名或密码错误被拒绝访问了,最简单的解决方法就是将MySQL数据库卸载然后重装,但这样的缺点就是就以前的数据库中的信息将丢失,如果你不想重装,那么就需要找回密码或者重置密码。解决的方法应该有多种,这里我推荐大家使用一种原理通过,操作简单的方法,适用于windows以及linux平台。  
    MySQL 1045错误如图:
    1. ERROR 1045 (28000): Access denied for user "root"@"localhost" (using password: YES)
    复制代码


    解决方案:
    1、   停止服务:停止MySQL服务;
    2、   跳过验证:修改MySQL安装目录下的my.ini配置文件,使登录时跳过权限检查;
    3、   修改密码:启动MySQL服务,登录MySQL,此时提示输入密码,输入任意密码回车即可进入MySQL。然后通过SQL语句修改root用户的密码;
    4、   重启服务:将my.ini文件中加入的跳过权限语句删除或加#号注释。重启服务,使用修改后的密码登录即可。
    Windows系统具体操作:
    1、   停止服务:

      方法1:使用dos命令net stop mysql即可;使用这种方式MySQL服务必须为安装的服务,否则
      会出现服务名无效,这时可以使用第二种方法。
      方法2:进入【控制面板】-->【管理工具】 -->【服务】,找到MySQL服务,点击左边的停止。

    2、   跳过验证:

      进入MySQL的安装路径(以默认安装路径为例)C:\Program Files\MySQL\MySQL Server 5.1\,找到my.ini配置文件(些文件记录MySQL的常规参数,每次启动服务都会先加载此文件),在my.ini配置文件的最后一行加入skip_grant_tables,此语句可以忽略登录检查。

    3、   修改密码:

      启动MySQL服务,进入dos环境,输入mysql -u root -p登录MySQL(如果安装时没有勾选添加
      环境变量,需要先使用cd命令进入MySQL安装目录),此时提示输入密码,输入任意密码回车即可进入MySQL,出现mysql>控制符,此时表示已经成功登录MySQL;
      mysql> USEmysql   (将数据库切换至mysql库中)
      mysql>  UPDATE user SET password=PASSWORD(‘newpswd’)WHERE user=’root’          (修改密码)
      password函数为MySQL内部函数,其中newpswd为修改后的新密码。

    4、   重启服务:

      将my.ini文件中加入的跳过权限语句删除或加#号注释。重启服务,使用修改后的密码登录即可。
       

    Linux系统具体操作:
    1、   停止服务:

      执行:/etc/init.d/mysqlstop
      (你的机器不一定是/etc/init.d/mysql也可能是/etc/init.d/mysqld,可以通过find命令查找)。

    2、   跳过验证:

      执行:/usr/local/mysql/bin/mysqld_safe--skip-grant-tables >/dev/null 2>&1 &
      (如果mysqld_safe的位置如果和不一样需要修改,如果不清楚可以用find命令查找)。

    3、   修改密码:

      执行:
      /usr/local/mysql/bin/mysql -u root mysql      (登录mysql)
      mysql> UPDATE userSET password=PASSWORD(‘newpswd’)WHERE user=’root’  (修改密码)
      mysql>flush privileges     ( 刷新MySQL权限相关的表)
      mysql>exit                         (退出MySQL)

    4、   重启服务:

      执行:
      killall mysqld                      (杀死mysql进程)
      /etc/init.d/mysql start      (启动mysql服务)

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-24 10:10 , Processed in 0.363507 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表