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日

相关文章

  • MySQL查询优化必备知识点总结

    当今互联网时代数据量不断增加,高效的数据库查询成为了系统稳定可靠运行的重要保障。本篇攻略将为大家总结MySQL查询优化的必备知识点,希望对你在数据库性能优化上有所帮助。 索引优化 索引是提高查询性能最为重要的手段之一。使用索引可以让查询更快速地查找到目标数据,大大缩短查询时间。以下是关于索引的一些优化技巧: 选择合适的索引类型 MySQL支持多种索引类型,包…

    MySQL 2023年5月19日
    00
  • MySQL如何获取binlog的开始时间和结束时间

    MySQL数据库恢复到指定时间点时,我们必须通过MySQL全备+MySQL增量备份(可选)+MySQL的二进制日志(binlog)进行重放来恢复到指定时间点,实际的生产环境中,可能一段时间内生成了多个二进制日志文件(binlog), MySQL本身不会存储二进制日志文件(binlog)的开始时间和结束时间,如果要还原到某个时间点,我们需要知道还原后重放哪些二…

    MySQL 2023年5月6日
    00
  • MySQL Order By索引优化方法

    MySQL的Order By语句可以对查询结果进行排序,一般来说是通过排序算法实现的,但是如果查询数据量非常大,排序操作可能会非常耗时。因此,在Order By语句中使用索引可以大大提高排序的效率,下面我将详细介绍如何优化MySQL Order By语句的索引。 什么是MySQL Order By索引优化方法 MySQL Order By索引优化方法就是在O…

    MySQL 2023年5月19日
    00
  • 解决Mysql:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: NO)的方法

    当我们使用MySQL进行操作时,有时候会因为权限问题出现:Mysql:ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: NO)的错误。这种错误提示通常是因为MySQL无法验证我们所使用的用户或密码。下面是解决该问题的方法: 1.检查用户名和密码是否正确 …

    MySQL 2023年5月18日
    00
  • GaussDB(DWS)网络流控与管控效果

    摘要:本文主要介绍GaussDB(DWS)网络流控能力,并对其管控效果进行验证。 本文分享自华为云社区《GaussDB(DWS)网络流控与管控效果》,作者:门前一棵葡萄树。 上一篇博文GaussDB(DWS)网络调度与隔离管控能力,我们详细介绍了GaussDB网络调度逻辑,并简单介绍了如何应用网络隔离管控能力。本篇博文主要介绍GaussDB(DWS)网络流控…

    MySQL 2023年5月5日
    00
  • 详解MySQL比较运算符

    MySQL 中的比较运算符主要包括: 等于运算符:= 用于比较两个值是否相等,如果相等则返回 TRUE,否则返回 FALSE。 例: SELECT * FROM students WHERE name = '张三'; 不等于运算符:<> 用于比较两个值是否不相等,如果不相等则返回 TRUE,否则返回 FALSE。 例: SEL…

    MySQL 2023年3月9日
    00
  • MySQL使用DROP TABLE命令删除表怎么恢复?

    前言 今天同事勿删除了一个测试环境表,因为刚好在跑重要的数据,重新跑又比较麻烦,所以尝试看能不能通过恢复数据的方式进行数据恢复,如果你也是重要数据一定要切记“不要慌,慌也没用”。百度过一些例子,哪些例子比较适合表刚刚创建后被删除,就能完全恢复,本篇文章适合那种创建很长时间,表在被删除的。 开始操作 第一步:先连接数据库 mysql -uroot 第二步:在M…

    MySQL 2023年4月17日
    00
  • MySQL 5.6下table_open_cache参数优化合理配置详解

    MySQL的table_open_cache参数是控制MySQL数据库中打开表的缓存数量的参数。合理配置table_open_cache参数能够有效的提升MySQL数据库的性能。下面就是一个关于MySQL 5.6下table_open_cache参数优化合理配置的详细攻略。 什么是table_open_cache参数 table_open_cache参数是M…

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