出现 ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES) 错误的解决方法

出现 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 错误,通常是由于 MySQL 用户身份验证失败,可能的原因包括密码错误、用户权限配置问题或身份验证插件不匹配等。以下是解决方法:

1. 检查密码是否正确
确保输入的密码与 MySQL 中为 root 用户设置的密码一致。
如果忘记了密码,请参考第 3 节“重置 MySQL 密码”。

2. 检查 MySQL 用户权限
确认 root 用户是否有从 localhost 登录的权限。
步骤
使用其他具有权限的 MySQL 用户登录:

mysql -u another_user -p

查看 root 用户的权限配置:

SELECT host, user FROM mysql.user WHERE user = 'root';

确保 root 用户有 localhost 的访问权限。如果没有,使用以下命令添加:

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

3. 重置 MySQL 密码
如果忘记了 root 用户密码,可以通过以下步骤重置密码。
步骤
1. 停止 MySQL 服务:
Linux:

sudo systemctl stop mysql
  • Windows: 停止 MySQL 服务(通过服务管理器)。

2. 启动 MySQL 无密码模式:

sudo mysqld_safe --skip-grant-tables &

3. 使用无密码模式登录 MySQL:

mysql -u root

4. 更新 root 用户密码:

USE mysql;
UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;

5. 退出并重新启动 MySQL 服务:

sudo systemctl restart mysql

6. 测试新密码登录:

mysql -u root -p

4. 检查身份验证插件
MySQL 5.7 及以上版本默认使用 caching_sha2_password 插件,可能会导致兼容性问题。
步骤
检查当前身份验证插件:

SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

如果不是 mysql_native_password,可以切换:

ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'your_password';
FLUSH PRIVILEGES;

5. 可能的配置文件问题
检查 MySQL 配置文件(/etc/my.cnf/etc/mysql/my.cnf)中是否存在错误配置,例如 skip-grant-tables 导致权限未被检查。
解决方法
打开配置文件:

sudo nano /etc/my.cnf

检查 [mysqld] 下是否有以下内容:

skip-grant-tables

如果存在,删除或注释掉,并重启 MySQL 服务。

6. 检查 MySQL 服务状态
确保 MySQL 服务正在运行:

sudo systemctl status mysql

如果服务未运行,尝试启动:

sudo systemctl start mysql

通过上述方法,你应能够解决 ERROR 1045 (28000) 的问题。如果仍有困难,请提供详细的错误信息或日志,我将进一步帮助!

发布者:myrgd,转载请注明出处:https://www.object-c.cn/4658

Like (0)
Previous 2024年11月26日 下午4:05
Next 2024年11月26日 下午4:30

相关推荐

  • Android 解决 “Module was compiled with an incompatible version of Kotlin“

    “Module was compiled with an incompatible version of Kotlin” 错误通常出现在 Android 开发中,因为模块的 Kotlin 编译器版本与项目中的 Kotlin 编译器版本不匹配。以下是解决此问题的方法: 1. 检查 Kotlin 插件版本步骤:打开 Android Studio。点击顶部菜单的 …

    2024年11月26日
    00
  • 搭建一个基于 Node.js 和 MySQL 的微信小程序

    搭建一个基于 Node.js 和 MySQL 的微信小程序后台可以帮助你管理数据、处理请求、存储用户信息等。下面是如何从头开始搭建一个基本的微信小程序后台系统的详细步骤。 1. 环境准备 确保你已经安装以下开发工具: 2. 创建 Node.js 项目 首先,创建一个新的 Node.js 项目: 2. 安装必要的依赖包: 使用以下命令安装这些依赖: 配置 My…

    2024年11月24日
    00
  • 使用 CLion 编写 C51 (即8051微控制器) 程序时,遇到 sbit 相关报错

    在使用 CLion 编写 C51 (即8051微控制器) 程序时,遇到 sbit 相关报错,通常是因为 CLion 默认并不支持8051的特殊语法和寄存器定义方式。sbit 是 C51 编译器中的一个关键字,用来将一个单独的位(bit)映射到特定的硬件寄存器或端口引脚。常见的报错及解决方法sbit 语法问题: CLion 本身不支持 C51 特有的语法,sb…

    2024年11月27日
    00
  • 微信小程序的 RequestTask.onChunkReceived 接口接收二进制数据流

    微信小程序的 RequestTask.onChunkReceived 接口允许接收分块的二进制数据流(如视频或音频流),但在小程序环境中,由于不支持 TextDecoder,处理这些数据时需要采用其他方法。 解析数据流的方案 模拟 TextDecoder 功能 如果需要将 ArrayBuffer 转换为字符串(如 UTF-8 编码),可以通过自定义方法模拟 …

    2024年11月26日
    00
  • 在进行 Java 单元测试时,遇到找不到类名的错误

    在进行 Java 单元测试时,遇到找不到类名的错误,通常是由于以下几个原因引起的。下面是一些常见问题及其解决方法:1. 类路径(Classpath)问题最常见的原因是编译后的类文件没有正确地包含在类路径中,或者类文件没有被正确加载到测试框架中。要解决这个问题,确保以下几点:解决方法:确认类是否存在:首先确保测试类和目标类都已经编译,并且在正确的目录中。检查 …

    2024年11月28日
    00
  • 在 Go 语言中,对文件的基础操作介绍

    在 Go 语言中,文件操作是基础技能之一,主要通过 os、io 和 io/ioutil 等标准库完成。以下是对文件操作的全面介绍,帮助你在 Go 语言的“成神之路”上迈出关键一步! 1. 创建文件使用 os.Create 创建文件,如果文件已存在会被清空。示例代码 2. 打开文件使用 os.Open 打开文件(只读模式),使用 os.OpenFile 可以指…

    2024年12月2日
    00
  • Redis 一个高性能的内存数据存储系统

    Redis 缓存详解 Redis 是一个高性能的内存数据存储系统,广泛用于缓存和会话存储。它支持多种数据结构(如字符串、哈希、列表、集合、有序集合等),使其非常适合用于缓存策略的实现。下面将详细解释 Redis 缓存 中常见的问题和解决方案,涵盖性能优化、缓存失效、缓存穿透、缓存雪崩、缓存击穿等常见缓存问题。 1. 缓存穿透 缓存穿透 指的是查询的数据根本不…

    2024年11月23日
    00
  • 在Java中 ArrayList 和 LinkedList 实现 List 接口类

    在Java中,ArrayList 和 LinkedList 都是实现了 List 接口的类,但它们在底层实现和使用场景上有显著的区别。以下是它们的主要区别: 1. 底层实现ArrayList基于动态数组实现。元素是连续存储的,每个元素都可以通过索引直接访问。LinkedList基于双向链表实现。每个元素由节点(Node)存储,节点包含数据和前后节点的引用。 …

    2024年12月2日
    00
  • 如何用pbootcmsAPI接口开发微信小程序UNIAPP

    使用 PbootCMS 的 API 接口结合 UniApp 开发微信小程序,可以实现高效的内容管理和展示。以下是一个完整的开发流程,包括 API 接口设置、小程序功能设计和开发细节。 1. 准备工作1.1 配置 PbootCMS API 接口PbootCMS 提供 API 功能,需在后台开启并配置:登录 PbootCMS 后台管理。前往 系统管理 -> AP…

    2024年11月28日
    00
  • C++ STL vector 类:动态数组的高效应用

    vector 是 C++ 标准库(STL)中最常用的容器之一,它提供了一个动态数组的实现,能够根据需要自动扩展或收缩。vector 是一个线性数据结构,具有高效的随机访问能力和动态扩展能力,广泛应用于需要频繁增删元素且对随机访问要求较高的场景。 1. vector 类简介 vector 是 C++ 标准模板库(STL)中提供的一种容器类,它类似于动态数组(d…

    2024年11月25日
    00
  • Oracle中RegExp_Like 正则表达式函数的基本用法

    在 Oracle 数据库中,REGEXP_LIKE 是一个用于匹配正则表达式的函数。它通常用于检查一个字符串是否符合某个正则表达式的模式。它是 Oracle 正则表达式功能的一部分,允许你在 SQL 查询中使用正则表达式进行数据验证或过滤。 语法 示例 1. 基本使用 检查字符串是否符合给定的正则表达式模式。 此查询将查找 column_name 中仅包含字…

    2024年11月23日
    00
  • 在 Spring Boot 中实现定时任务,可以使用以下三种方式

    1. 使用 @Scheduled 注解 这是 Spring 提供的简单方式,基于注解实现定时任务。 步骤: 3. 创建任务类使用 @Scheduled 注解定义定时任务: 4. @Scheduled 参数详解 2. 使用 ScheduledExecutorService 如果任务管理需要更灵活,可以使用 Java 自带的线程池。 示例: 3. 使用 Quar…

    2024年11月26日
    00
  • Web实时通信和 @microsoft/signalr 微软开发的一款基于 SignalR 的实时通信库

    Web实时通信和 @microsoft/signalr@microsoft/signalr 是微软开发的一款基于 SignalR 的实时通信库,专为 Web 应用提供强大的实时通信功能。SignalR 的主要特点包括支持双向通信、自动选择传输协议(WebSockets、Server-Sent Events 或 Long Polling)以及简化的服务器与客户…

    2024年12月1日
    00
  • 在 .NET 8 框架中使用 Web API 项目并通过引用 SqlSugar ORM 来操作数据库

    在 .NET 8 框架中使用 Web API 项目并通过引用 SqlSugar ORM 来操作数据库,可以遵循以下步骤: 1. 准备工作确保已安装 .NET 8 SDK 和 SqlSugar NuGet 包。创建或打开现有的 Web Core API 项目。安装 SqlSugar NuGet 包: 2. 配置 SqlSugar在 Web API 项目中配置 …

    2024年11月27日
    00
  • Android Studio 国内镜像,加速下载和构建过程

    在国内使用 Android Studio 时,由于访问 Google 的官方资源(如 Gradle 和 SDK)速度较慢甚至无法访问,可以通过配置国内镜像源来加速下载和构建过程。以下是详细配置步骤: 1. 配置 Gradle 国内镜像 Gradle 是 Android Studio 构建项目的重要工具,其依赖库通常托管在 Google Maven 和 JCe…

    2024年11月25日
    00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信