MySQL服务器登陆故障ERROR 1820 (HY000)的解决方法

当我们使用MySQL客户端连接到MySQL服务器时,有时会出现以下错误信息:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

这是由于MySQL对于默认安装后第一次连接的用户,需要强制修改其密码。但如果此步骤没有完成,再次连接时就会遇到上述错误。

为了解决此问题,我们需要执行以下步骤:

步骤1:停止MySQL服务。

首先,需要通过以下命令停止MySQL服务器:

sudo service mysql stop

如果你的系统使用的不是systemd,则需要使用不同的命令来停止MySQL服务器。

步骤2:以带有–skip-grant-tables选项的方式启动MySQL服务器。

sudo mysqld_safe --skip-grant-tables &

这个命令会启动一个新的MySQL服务器实例,并跳过用户验证,并且在后台运行。

步骤3:连接MySQL服务器并执行SQL命令。

接下来,我们需要连接到刚才启动的MySQL服务器,并执行以下SQL命令:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

上述命令会刷新权限表并将root用户的密码更改为new_password。请确保替换new_password为你想要设置的新密码。这个例子中,我们将root用户的密码更改为password1234

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password1234';

步骤4:关闭MySQL服务器。

当完成上述步骤后,需要关闭第二个MySQL服务器实例,以便重新启动原始实例。可以使用以下命令来执行此操作:

sudo mysqladmin -u root -p shutdown

这个命令会提示输入密码以便关闭MySQL服务器实例。

步骤5:重新启动MySQL服务器。

最后,通过以下命令重新启动MySQL服务器:

sudo service mysql start

这将启动MySQL服务器,你应该能够使用新的密码来连接MySQL服务器了。

以下是两个示例说明:

示例1:

某用户在升级MySQL服务器后无法连接,遇到了“ERROR 1820 (HY000): You must reset your password...”错误。通过以上步骤,按照以下命令重新设置密码:

FLUSH PRIVILEGES;
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';

修改了用户密码后,就可以重新连接数据库了。

示例2:

某用户在实验室环境中当使用完整安装向导将MySQL Server 5.7.18安装到Windows Server 2012 R2上之后,因为安装时勾选了"启用身份验证",导致最初安装时请勾选了必要身份验证选项,在以后登陆时遇到了“ERROR 1820 (HY000)”错误。通过以上步骤,可以解决该问题。按照以下命令重新设置密码:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

修改了root用户密码后,就可以重新连接数据库了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL服务器登陆故障ERROR 1820 (HY000)的解决方法 - Python技术站

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

相关文章

  • 如何解决安装MySQL5.0后出现1607异常

    如何解决安装MySQL5.0后出现1607异常 问题描述 在安装Mysql5.0的过程中,可能会遇到1607异常,异常如下所示: Error 1607: Unable to install InstallShield Scripting Runtime 问题原因 该问题的主要原因是InstallShield脚本运行时没有正确安装或已损坏。 解决方案 方案一:…

    MySQL 2023年5月18日
    00
  • MySQL中EXPLAIN语句及用法实例

    下面是“MySQL中EXPLAIN语句及用法实例”攻略。 EXPLAIN语句在MySQL中的作用 一个查询语句,无论多么精细地编写,都可能会有性能瓶颈。常见的瓶颈有数据量太大、表太多、查询的JOIN语句过于复杂或者索引不当等。当遇到性能瓶颈问题时,我们通常需要使用MySQL的EXPLAIN语句来分析查询语句的性能瓶颈所在,从而找到最优的优化方案。 EXPLA…

    MySQL 2023年5月19日
    00
  • MySQL日志设置及查看方法

    MySQL是一个开源的关系型数据库管理系统,它可以在不同的操作系统中运行。MySQL提供了多种日志记录工具,使得数据库管理员可以更好地了解MySQL数据库的运行情况。 本文介绍了MySQL日志设置及查看方法,包括以下内容: 设置MySQL日志 General Query Log General Query Log 是 MySQL 记录所有 SQL 语句执行时…

    MySQL 2023年5月18日
    00
  • 详解MySQL HAVING:过滤分组

    HAVING是MySQL用于在GROUP BY子句之后对数据进行过滤的关键字,HAVING的使用方式与WHERE相似,可以使用诸如SUM、AVG等聚合函数、关系运算符、逻辑运算符等对数据进行筛选。在使用HAVING之前,需要先进行GROUP BY操作,将数据按照一定规则分组。 下面是一些示例说明: 假设有一个订单表orders,包含以下字段: order_i…

    MySQL 2023年3月9日
    00
  • MySQL中常见的几种日志汇总

    MySQL中常见的几种日志有以下几种: binlog日志 概述 MySQL binlog是一种二进制日志,用于记录所有数据更改操作(包括增、删、改)。 使用场景 主从复制 逻辑备份(如:通过执行binlog来执行“增量备份”) 命令 # 开启二进制日志流程: 1. 修改MySQL配置文件,在mysqld节点下添加如下两行配置 log-bin=/var/lib…

    MySQL 2023年5月18日
    00
  • MySQL自动编号与主键

    1、自动编号(AUTO_INCREMENT),必须与主键组合使用 默认情况下,起始值为1,增量也为1。 2、主键(PRIMARY KEY) 每张数据表只能存在一个主键 主键保证记录的唯一性 主键自动为NOT NULL 3、AUTO_INCREMENT必须与主键一起使用,主键不一定必须与AUTO_INCREMENT一起使用。 mysql> CREATE …

    MySQL 2023年4月16日
    00
  • mysql 查询重复的数据的SQL优化方案

    当我们需要查询数据库中重复的数据时,在传统的方法中,我们可以使用GROUP BY函数或者DISTINCT函数进行实现,但是这种方式的缺点在于运行效率低下,特别是对于大数据量的查询。因此,我们需要一些更加高效的SQL优化方案。 下面是mysql查询重复数据的SQL优化方案的完整攻略: 1. 通过使用HAVING子句和COUNT函数来查询 第一种方法是使用HAV…

    MySQL 2023年5月19日
    00
  • MySQL使用SELECTI…INTO OUTFILE导出表数据

    MySQL是一个开源数据库系统,提供了许多强大的功能来管理和操作数据。 其中,导出数据是MySQL中必不可少的一项任务之一,这可以使数据库管理员、开发人员和分析师轻松地将数据传输到其他应用程序或存储在本地计算机上。 本文将详细介绍如何使用SELECT INTO OUTFILE命令导出MySQL表数据。 语法 SELECT … INTO OUTFILE &…

    MySQL 2023年3月10日
    00
合作推广
合作推广
分享本页
返回顶部