当我们使用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技术站