ERROR 1045 (28000): Access denied for user ”root”@”localhost” (using password: YES)实用解决方案

yizhihongxing

这个错误通常表示MySQL无法使用提供的用户名和密码进行登录操作。以下是可能导致此错误的一些原因和相应的解决方案。

原因1:用户名或密码不正确

如果提供的用户名或密码不正确,那么MySQL会提示“Access denied”错误。为了解决这个问题,你需要确认你使用的用户名和密码是正确的。你可以尝试重置密码,方法如下:

  1. 在终端中以root用户身份运行mysql。
    sudo mysql -u root
  2. 执行以下命令来重置root用户的密码:
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  3. 刷新MySQL的权限:
    FLUSH PRIVILEGES;
  4. 退出MySQL:
    quit
  5. 以新密码重新登录:
    mysql -u root -p

原因2:MySQL未以预期的方式启动

如果MySQL在启动时未按预期方式启动,则可能会导致“Access denied”错误。以下是几个可能的原因和相应的解决方案:

示例1:MySQL未以预期方式在macOS上启动

如果你在macOS上使用Homebrew安装了MySQL,并且MySQL无法启动,那么你可以尝试以下步骤来解决“Access denied”错误:

  1. 关闭MySQL服务:
    brew services stop mysql
  2. 使用以下命令重置MySQL的密码:
    sudo mysql_secure_installation
  3. 确认MySQL的安装目录:
    brew info mysql
  4. 打开MySQL的配置文件:
    open /usr/local/etc/my.cnf
  5. 检查配置文件中是否有以下几个行:
    [mysqld]
    skip-grant-tables

    如果没有,请添加上面的两个行。
  6. 启动MySQL服务:
    brew services start mysql
  7. 再次使用以下命令登录到MySQL:
    mysql -u root -p

示例2:MySQL无法访问/tmp目录

如果MySQL在启动时无法访问/tmp目录,则可能会导致“Access denied”错误。你可以执行以下命令来授权MySQL访问/tmp目录:

sudo chmod -R 777 /tmp

原因3:防火墙阻止了MySQL的访问

如果你的主机或网络中使用了防火墙,那么防火墙可能会阻止MySQL的访问。你可以尝试禁用防火墙或允许MySQL通过防火墙。

示例1:使用ufw禁用Ubuntu上的防火墙

如果你使用的是Ubuntu,并且启用了ufw防火墙,则可以通过以下命令禁用防火墙:

  1. 停止ufw服务:
    sudo ufw disable
  2. 确认ufw已禁用:
    sudo ufw status

示例2:在Windows Server 2016上允许MySQL通过Windows防火墙

如果你使用的是Windows Server 2016,并且启用了Windows防火墙,则可以按照以下步骤允许MySQL通过防火墙:

  1. 打开防火墙高级安全性设置:
    wf.msc
  2. 选择“Inbound Rules”选项卡。
  3. 单击“新建规则”菜单。
  4. 选择“端口”选项并单击“下一步”。
  5. 选择“TCP”选项并输入3306端口号。单击“下一步”。
  6. 选择“允许连接”选项并单击“下一步”。
  7. 输入规则名称并单击“完成”。

完成以上步骤后,你应该可以通过MySQL登录了。如果你仍然无法登录,请检查网络连接并联系系统管理员。

希望以上内容对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ERROR 1045 (28000): Access denied for user ”root”@”localhost” (using password: YES)实用解决方案 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • oracle查看表空间已分配和未分配空间的语句分享

    下面是详细讲解“oracle查看表空间已分配和未分配空间的语句分享”的完整攻略。 1. 查询已分配表空间的空间使用情况 查询已经分配的表空间及其空间使用情况,可以使用以下的查询语句: SELECT tablespace_name, sum(bytes)/1024/1024 "已使用空间(MB)", sum(maxbytes)/1024/1…

    database 2023年5月21日
    00
  • mybatis中Oracle参数为NULL错误问题及解决

    问题描述: 在使用MyBatis操作Oracle数据库时,如果Mapper文件中的参数值为NULL,则会出现SQL异常,例如: Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式 The error may exist in com/exampl…

    database 2023年5月18日
    00
  • 基于oracle expdp命令的使用详解

    基于oracle expdp命令的使用详解 介绍 expdp是Oracle 10g及以上版本中自带的备份和导出工具,用于将数据从Oracle数据库导出到其他数据库或文件中。它是Oracle数据传输的标准选择,并且提供了比传统exp更好的灵活性和更好的性能。 命令格式 expdp命令的语法如下所示: expdp username/password@connec…

    database 2023年5月21日
    00
  • Pycharm使用Database Navigator连接mysql数据库全过程

    下面是详细的Pycharm使用Database Navigator连接MySQL数据库的全过程: 1. 下载并安装Database Navigator插件 首先,我们需要在Pycharm插件库中下载并安装Database Navigator插件。具体操作步骤如下: 打开 Pycharm ,点击菜单栏中的 “ File ” -> “ Settings ”…

    database 2023年5月18日
    00
  • sqlplus登录\连接命令、sqlplus命令的使用大全

    以下是关于”sqlplus登录\连接命令、sqlplus命令的使用大全”的一份完整攻略: SQLPlus登录\连接命令 1. 语法 sqlplus [用户名]/[密码]@[连接串] 用户名:指数据库中已创建的用户的名称,没有指定默认为SYS用户; 密码:指该用户的密码; 连接串:指连接到的数据库实例的系统名称,格式为”[主机名]:[端口号]/[服务名]” 2…

    database 2023年5月21日
    00
  • Spring boot 使用Redis 消息队列

    package com.loan.msg.config; import com.loan.msg.service.MessageReceiver; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configur…

    Redis 2023年4月12日
    00
  • Ubuntu 14.04安装java的方法以Ubuntu14.04为例

    Ubuntu 14.04安装java的方法以Ubuntu14.04为例 Java是一种跨平台的编程语言,广泛地运用于Web应用程序、企业管理系统等方面。在Ubuntu 14.04上安装Java会使得我们可以在系统中运行Java程序。本文将介绍如何在Ubuntu 14.04上安装Java. 安装openjdk Ubuntu 14.04默认使用的是OpenJDK…

    database 2023年5月22日
    00
  • SQL学习笔记一SQL基础知识

    下面是针对“SQL学习笔记一SQL基础知识”的完整攻略,希望能对你有所帮助。 1.内容概述 本篇笔记主要介绍SQL基础知识,包括数据库、表、字段、数据类型、SQL语句等相关内容。 2.数据库 数据库是指一个存储数据的仓库,可以存储和管理各种数据。常见的数据库有MySQL、Oracle、SQL Server等。 3.表 表是数据库中数据的存储单位,可以看做是由…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部