首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

成功解决MySQL登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

  • 25-03-08 01:41
  • 2385
  • 8743
blog.csdn.net

成功解决MySQL登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)。在MySQL登录时出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)拒绝访问,导致不能继续修改MySQL密码。表示 MySQL 数据库拒绝了用户 root 通过 localhost 进行的连接请求。这种错误通常发生在以下几种情况下:1. 用户名或密码不正确。2. 用户没有足够的权限(例如,配置文件中的权限设置有误)。
3. MySQL 服务没有正确配置。4. MySQL 配置文件与实际设置不匹配。


? 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式+人工智能领域,具备多年的嵌入式硬件产品研发管理经验。

? 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导、简历面试辅导、技术架构设计优化、开发外包等服务,有需要可加文末联系方式联系。

? 博主粉丝群介绍:① 群内高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

解决MySQL报错:ERROR 1045(28000):Access denied for user ‘root‘@‘localhost‘ (using password: YES

    • 问题背景
    • 问题原因
    • 解决方案
      • 1. 检查用户名和密码
        • 错误示例:
        • 解决方法:
      • 2. 重置 root 密码
        • 步骤 1:停止 MySQL 服务
        • 步骤 2:跳过权限表启动 MySQL
        • 步骤 3:登录 MySQL
        • 步骤 4:重置密码
        • 步骤 5:重启 MySQL
      • 3. 确保用户有足够的权限
        • 查看用户权限:
        • 如果需要,授予权限:
      • 4. 检查 MySQL 配置文件
        • 配置示例:
        • 重新启动 MySQL 服务
      • 5. 确保 MySQL 服务正在运行
        • 检查 MySQL 服务状态:
        • 如果 MySQL 没有运行,启动它:
    • 示例与应用
      • 示例 1:检查用户名和密码
        • 错误示例:
        • 正确示例:
      • 示例 2:重置 root 密码
        • 停止 MySQL 服务
        • 跳过权限表启动 MySQL
        • 登录 MySQL 并重置密码
        • 重启 MySQL 服务
      • 示例 3:授予权限
        • 查看权限
        • 如果需要,授予权限
      • 示例 4:检查 MySQL 配置文件
      • 示例 5:确保 MySQL 服务正在运行
        • 检查服务状态
        • 启动服务
    • 总结

在这里插入图片描述

问题背景

在这里插入图片描述

如上图所示,在MySQL登录时出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)拒绝访问,导致不能继续修改MySQL密码。表示 MySQL 数据库拒绝了用户 root 通过 localhost 进行的连接请求。

问题原因

这种错误通常发生在以下几种情况下:

  1. 用户名或密码不正确。
  2. 用户没有足够的权限(例如,配置文件中的权限设置有误)。
  3. MySQL 服务没有正确配置。
  4. MySQL 配置文件与实际设置不匹配。

下面是一些常见的导致 “Access denied” 错误的原因和解决方法。

解决方案

1. 检查用户名和密码

确保你使用的是正确的用户名和密码。

错误示例:
mysql -u root -pwrongpassword  # 错误的密码
  • 1
解决方法:
mysql -u root -p  # 提示输入密码,然后输入正确的密码
  • 1

2. 重置 root 密码

如果你忘记了 root 用户的密码,可以通过以下步骤重置密码。

步骤 1:停止 MySQL 服务
sudo service mysql stop  # 对于 Debian/Ubuntu 系统
# 或者
sudo systemctl stop mysqld  # 对于 RedHat/CentOS 系统
  • 1
  • 2
  • 3
步骤 2:跳过权限表启动 MySQL
sudo mysqld_safe --skip-grant-tables &
  • 1
步骤 3:登录 MySQL
mysql -u root
  • 1
步骤 4:重置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';  # 替换为新密码
FLUSH PRIVILEGES;
  • 1
  • 2
步骤 5:重启 MySQL
sudo service mysql restart  # 对于 Debian/Ubuntu 系统
# 或者
sudo systemctl restart mysqld  # 对于 RedHat/CentOS 系统
  • 1
  • 2
  • 3

3. 确保用户有足够的权限

确保用户有访问指定数据库的权限。

查看用户权限:
SHOW GRANTS FOR 'root'@'localhost';
  • 1
如果需要,授予权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  • 1
  • 2

4. 检查 MySQL 配置文件

检查 MySQL 配置文件(通常是 my.cnf 或 my.ini),确保 skip-networking 没有被启用,并且 bind-address 设置正确。

配置示例:
# my.cnf 或 my.ini
[mysqld]
# 确保 skip-networking 被注释掉
# skip-networking

# 将 bind-address 设置为 127.0.0.1,允许本地连接
bind-address = 127.0.0.1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
重新启动 MySQL 服务
sudo service mysql restart  # 对于 Debian/Ubuntu 系统
# 或者
sudo systemctl restart mysqld  # 对于 RedHat/CentOS 系统
  • 1
  • 2
  • 3

5. 确保 MySQL 服务正在运行

确保 MySQL 服务是运行的。

检查 MySQL 服务状态:
sudo service mysql status  # 对于 Debian/Ubuntu 系统
# 或者
sudo systemctl status mysqld  # 对于 RedHat/CentOS 系统
  • 1
  • 2
  • 3
如果 MySQL 没有运行,启动它:
sudo service mysql start  # 对于 Debian/Ubuntu 系统
# 或者
sudo systemctl start mysqld  # 对于 RedHat/CentOS 系统
  • 1
  • 2
  • 3

示例与应用

示例 1:检查用户名和密码

错误示例:
mysql -u root -pwrongpassword  # 使用错误的密码
  • 1
正确示例:
mysql -u root -p  # 使用正确的密码
  • 1

示例 2:重置 root 密码

停止 MySQL 服务
sudo service mysql stop
  • 1
跳过权限表启动 MySQL
sudo mysqld_safe --skip-grant-tables &
  • 1
登录 MySQL 并重置密码
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
  • 1
  • 2
  • 3
重启 MySQL 服务
sudo service mysql restart
  • 1

示例 3:授予权限

查看权限
SHOW GRANTS FOR 'root'@'localhost';
  • 1
如果需要,授予权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  • 1
  • 2

示例 4:检查 MySQL 配置文件

# my.cnf 或 my.ini
[mysqld]
# 确保 skip-networking 被注释掉
# skip-networking

# 将 bind-address 设置为 127.0.0.1,允许本地连接
bind-address = 127.0.0.1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

示例 5:确保 MySQL 服务正在运行

检查服务状态
sudo service mysql status
  • 1
启动服务
sudo service mysql start
  • 1

总结

“Access denied for user ‘root‘@‘localhost‘ (using password: YES)” 错误通常是由于用户名或密码错误、权限不足、MySQL 服务没有正确配置或运行状态异常导致的。通过检查用户名和密码、重置 root 密码、授予足够的权限、检查 MySQL 配置文件以及确保 MySQL 服务正在运行,可以有效解决这个问题。

希望本文对你理解和解决 Access denied for user ‘root‘@‘localhost‘ (using password: YES) 错误有所帮助。如果你有任何问题或建议,欢迎在评论区留言讨论!

文章知识点与官方知识档案匹配,可进一步学习相关知识
MySQL入门技能树SQL高级技巧CTE和递归查询94186 人正在系统学习中
商务合作/咨询/联系我
微信名片
注:本文转载自blog.csdn.net的I'mAlex的文章"https://blog.csdn.net/g310773517/article/details/139472349"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

139
资讯
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top