mysql 5.7 登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

这篇具有很好参考价值的文章主要介绍了mysql 5.7 登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、问题详情

输入 mysql -u root -p 登录后出现拒绝访问,报错如图:​ error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器


二、问题解析

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

译文:
错误1045(28000):用户 'root' @ 'localhost' (使用密码)拒绝访问

对该报错进行解析,主要有两个方面:

  1. Access denied 提示出现的可能情况:
    1)mysql 的服务器停止:
      若 MySQL 已经没有启动,重启 MySQL 服务器:
      systemctl restart mysqld
    2)用户的端口号或者 IP 导致:
      若用户的端口号与 IP(3306/3307)不一致,打开 my.ini 文件进行编辑。全部编辑替换为: port=X
    3)mysql 的配置文件错误 ----my.ini 等文件:
      my.ini文件误输入无效内容,不知道到何处。可在其余博客上复制替换该文件
    4)root 用户的密码错误(见后文)

  2. using password: YES / NO 提示出现的可能情况:
    不输入密码出现 NO
    error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器
    密码错误出现 YES
    error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器


三、解决方案(root 用户的密码错误)

  • 管理员身份运行的命令提示符,快捷键打开方式:
    1. win + R
    2. 键入 cmd
    3. ctrl + shift + Enter

方案一:

  1. 管理员身份打开命令提示符 cmd,进入mysql安装bin目录,输入如下代码,来关闭 mysql

net stop mysql
error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器

  1. 跳过登录 mysql 时的权限验证

mysql8.0 以前版本操作: 输入代码段,来跳过密码登录
mysqld --skip-grant-tables
error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器

注意!!!语句输入后,不会有任何新提示,只有光标闪动,不要关闭该界面,新开一个管理员cmd界面

  1. 新的管理员 cmd 界面中,进入mysql安装bin目录,启动 mysql 服务,登录 mysql

net start mysql
可能出现的错误: MySQL 服务正在启动。MSQL 服务无法启动。服务没有报告任何错误。请键入 NET HELPMSG 3534 以获得更多的帮助。
解决方法: 把 data 文件夹删掉,用 mysqld --initialize-insecure --user=mysql 语句进行初始化,成功则会生成data目录并生成root用户,不会产生新信息提示。(删不掉data的时候,把任务管理器打开,关闭 mysqld 进程,其他启动或者关闭服务失败的时候做法相同。)

mysql -u root -p
在输入登陆密码行,直接enter键入,成功登入
error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器

  1. 将登陆密码设空

使用 mysql 数据表
use mysql;
将密码置为空
update user set authentication_string='' where user='root';
退出 mysql
quit;
error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器

注意!!!此时不可直接修改,必须先置空,不然会报错
操作完成后,关闭前两个 cmd 窗口(不关无法重设密码)

  1. 重启服务,在保证前两个 cmd 窗口关闭的前提下,打开一个新的管理者 cmd 窗口,走到 mysql 的 bin 目录,输入如下代码

第一个代码是为了防止 mysql 服务没关掉
net stop mysql
net start mysql
error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器

  1. 修改密码,输入如下代码

登入已经置空密码的 mysql ,输入密码行用 enter 键入
mysql -u root -p
更改密码( 123456 为笔者重设的密码)
alter user 'root'@'localhost' identified by '123456';
error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器

  1. 检查密码是否修改成功

quit;
输入新密码,再次登陆
mysql -u root -p
error 1045 (28000): access denied for user 'root'@'localhost' (using passwor,mysql,mysql,数据库,服务器

成功!

方案二:

  1. 修改 my.in/my.cnf 配置文件

进入 mysql 安装目录
笔记本编辑 my.ini
在[mysqld]下行添加 skip-grant-tables,保存即可。

  1. 使用管理员身份打开 cmd 操作如下

①重启mysql:
net stop mysql
net start mysql
②进入 mysql ,登录(无密码,回车键入):
mysql -u root -p
③输入 use mysql ,修改 root 的密码:
update user set authentication_string=password('新密码') where user='123456';
flush privileges;
④退出:
quit;
⑤再次重启 mysql:
net stop mysql
net start mysql
⑥测试修改结果:
mysql -u root -p


🥰如果本文对你有些帮助,欢迎点赞收藏关注,你的支持是对作者大大莫大的鼓励!!(✿◡‿◡) 若有差错恳请留言指正~~文章来源地址https://www.toymoban.com/news/detail-769886.html


到了这里,关于mysql 5.7 登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包