MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开解决方法汇总

 更新时间:2024年09月23日 16:52:05   作者:程序员洲洲  
本文已解决MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开的相关报错问题,并总结提出了几种可用解决方案,又遇到同样问题的朋友可以参考阅读下本文

一、Bug描述

Mysql在使用过程中,可能会遇到登录问题,比如常见的错误信息:“Access denied for user ‘root’@‘localhost’ (using password: YES)”。

本文将分析这个问题的可能原因,并提供一系列解决方案。

在这里插入图片描述

二、定位报错原因

出现这个Access denied问题的原因有如下可能:

  • MySQL的服务器停止了。
  • 用户的端口号或者IP导致拒绝访问。
  • MySQL的配置文件错误(通常是my.cnf或my.ini)。
  • root用户的密码错误。
  • 权限问题:用户可能没有足够的权限登录。

三、解决方案汇总

方案一:重设密码(建议忘记密码才使用这个方案)

步骤1:停止MySQL服务

在Linux上,可以使用以下命令:

sudo systemctl stop mysql

在Windows上,可以通过服务管理器停止MySQL服务。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

步骤2:以无密码模式启动MySQL

在Linux上,使用以下命令:

sudo mysqld_safe --skip-grant-tables &

如果是Windows系统。

使用vi /etc/my.cnf,添加到【mysqld】后面

skip-grant-tables

重启MySQL服务

systemctl restart mysqld 

创建一个免密码登录的用户

use mysql  #选择数据库

update user set authentication_string=password("123456") where user="root";  #修改密码

步骤3:连接Mysql

使用以下命令连接到MySQL服务器:

mysql -u root

步骤4:设置新密码

在MySQL命令行中,执行以下命令来设置新密码:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

步骤5:重启Mysql服务

在Linux上,使用以下命令:

sudo systemctl start mysql

Windows上,使用命令

net start mysql

方案二:检查用户权限

确保root用户具有从localhost登录的权限。可以使用以下命令查看权限:

SHOW GRANTS FOR 'root'@'localhost';

如果权限不正确,可以使用以下命令授予所有权限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

方案三:修改配置文件(推荐)

检查MySQL的配置文件,确保没有错误的配置阻止了登录。

常见的配置文件路径为/etc/mysql/my.cnf或/etc/my.cnf 或者 D:\Program Files\MySQL\MySQL Server 5.0\my.ini)

在[mysqld]这个条目下加入

skip-grant-tables 

保存退出后重启mysql即可。

这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现 password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。

我们接下来设置密码就可以了

mysql> use mysql;
mysql> update user set password=password("新密码") where user="root";

然后刷新数据库。

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)  
mysql> quit;

总结

以上就是MySQL登录时出现ERROR 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开解决方法汇总的详细内容,更多关于MySQL ERROR 1045的资料请关注脚本之家其它相关文章!

相关文章

  •  SQL 中 CASE 表达式的使用方式

     SQL 中 CASE 表达式的使用方式

    这篇文章主要介绍了 SQL 中 CASE 表达式的使用方式,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • mysql数据库备份及恢复命令 mysqldump,source的用法

    mysql数据库备份及恢复命令 mysqldump,source的用法

    mysql数据库备份及恢复命令 mysqldump,source的用法,需要的朋友可以参考下。
    2011-02-02
  • MYSQL5.7 全文检索中文无返回数据的问题解决

    MYSQL5.7 全文检索中文无返回数据的问题解决

    本文介绍了MYSQL5.7 全文检索中文无返回数据的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Linux服务上MySQL启动、重启和关闭的操作方法

    Linux服务上MySQL启动、重启和关闭的操作方法

    MySQL是一种广泛使用的开源关系型数据库管理系统,常用于各种规模的应用程序中,在Linux服务器上管理MySQL服务是一个基本的运维任务,本文将详细介绍如何在Linux系统上启动、重启和关闭MySQL服务,涵盖不同Linux发行版(如Ubuntu和CentOS)的操作方法
    2024-11-11
  • 一文带你了解Mysql主从同步原理

    一文带你了解Mysql主从同步原理

    本文主要讲解了Mysql主从同步原理,主从同步可以扩展数据库的负载能力、容错还可以数据备份等。想要了解相关内容的朋友可以阅读这篇文章
    2021-08-08
  • MySQL性能压力基准测试工具sysbench的使用简介

    MySQL性能压力基准测试工具sysbench的使用简介

    这篇文章主要介绍了MySQL性能压力基准测试工具sysbench的使用简介,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-04-04
  • Mysql允许外网访问设置步骤

    Mysql允许外网访问设置步骤

    本文给大家分享Mysql允许外网访问设置步骤,通过简单的五步操作就可以实现mysql允许外围访问功能,非常不错,需要的朋友参考下吧
    2016-10-10
  • 详解MySQL多版本并发控制机制(MVCC)源码

    详解MySQL多版本并发控制机制(MVCC)源码

    MVCC,即多版本并发控制(Multi-Version Concurrency Control)指的是,通过版本链维护一个数据的多个版本,使得读写操作没有冲突,可保证不同事务读写、写读操作并发执行,提高系统性能
    2021-06-06
  • Mysql数据库不同官方版本对比详细分析

    Mysql数据库不同官方版本对比详细分析

    MySQL是一个流行的开源关系型数据库管理系统,有多个版本,这篇文章主要介绍了Mysql数据库不同官方版本对比的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-01-01
  • Mysql Update批量更新的几种方式

    Mysql Update批量更新的几种方式

    今天小编就为大家分享一篇关于Mysql Update批量更新的几种方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02

最新评论