MYSQL连接时错误码2059解决办法

Posted LQS_Android

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL连接时错误码2059解决办法相关的知识,希望对你有一定的参考价值。

一、问题原因:

如上图的报错提示可知,报错原因是caching_sha2_password不能加载。

这是因为8.0之后mysql更改了密码的加密规则,而目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。

二、解决步骤:

1、在win的左下角,输入cmd,打开cmd窗口;

  2、在命令行终端中进入到mysql的安装目录bin目录下;

回车就行了。 

3、登录mysql,

mysql -u root -p

复制上面命令,进入命令行终端,右击鼠标会自动粘贴(我的Windows10系统是这样的),回车执行,会输出如下结果:

 然后分别执行下面3个命令:

4、修改加密规则

alter user root@localhost identified by 'password' password expire never;

5、更新密码(如果你需要更改密码,将后面的单引号中的password替换为你的密码如‘123456’)

alter user root@localhost identified with mysql_native_password by 'password';

6、刷新

flush privileges;

我的所有执行过程:如下

Microsoft Windows [版本 10.0.19044.1706]
(c) Microsoft Corporation。保留所有权利。

C:\\Users\\123>d:

D:\\>cd D:\\Program Files (x86)\\mysql8.0.28\\bin

D:\\Program Files (x86)\\mysql8.0.28\\bin>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 67
Server version: 8.0.28 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.

mysql> alter user root@localhost identified by 'password' password expire never;
Query OK, 0 rows affected (0.09 sec)

mysql> alter user root@localhost identified with mysql_native_password by '123456';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

mysql>

 7、在客户端测试连接,连接成功。

以上是关于MYSQL连接时错误码2059解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Navicat连接MySQL8+时出现2059报错

Navicat 连接MySQL数据库 报错2059 - authentication plugin 'caching_sha2_password'的解决办法

Java 使用Navicat连接MySQL出现2059错误

Navicat 连接MySQL 8.0.11 出现2059错误

Navicat 连接MySQL 8.0.11 出现2059错误

(转)Navicat 连接MySQL 8.0.11 出现2059错误