解决SQLyog连接MySQL8时报错:错误号码2058

哎呀... SQLyog 连接MySQL8 报2 05 8 ... 我当时就一头雾水... 这东西很烦人。

2 02 2 年,很多人都遇见过。
MySQL8 默认使用caching_sha2 _password认证插件,但老版本的SQLyog似乎不识别。

你看,错误信息说得很清楚:不支持capping_sha2 _password加密方法。

必须改变。
只有两种方法。

方法一:自行更改用户
1 . 首先登录MySQL。
命令行:mysql -u root -p 2 . 输入您的根密码。
3 .登录后,在MySQL命令行中输入:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '您的密码'; 请注意,对于 mysql_native_password,请将“您的密码”替换为您自己的密码。
4 、输入完毕后,检查下面是否有Query OK, 0 rows受影响。
如果有,则说明已更改。

方法二:更改配置文件
1 . 首先找到 my.ini 文件。
登录 MySQL 并输入 show Variables like '%data%'; 查看数据目录在哪里。
my.ini 通常位于数据目录的上一级。
例如,Windows 可能是 C:\ProgramData\MySQL\MySQL Server 8 .0。
如果找不到,可以使用Everything之类的搜索工具,直接搜索my.ini。
2 . 找到后,使用记事本或其他文本编辑器将其打开。
3 . 找到[mysqld]部分。
添加以下行:default_authentication_plugin=mysql_native_password。
4 . 保存。
然后,在 Windows 上,您必须重新启动 MySQL 服务。
先停止:net stop mysql8 0(服务名可能不同,看控制面板服务里说的)。
然后启动:net start mysql8 0。

注意:
无论使用哪种方法,更改后都必须重新启动MySQL服务。
这很重要! 进行更改后,尝试再次连接 SQLyog。
如果还是不行,请再次检查密码是否正确。
或者尝试更换用户。
第一种方法是更改​​root用户,影响较小。
第二种方法是更改​​全局配置,这可能会影响其他客户端。
所以一般建议先使用第一个。

好了,就这些了。
一旦解决,请尽快使用。
这个问题确实很烦人。

mysql5和mysql8区别大吗 mysql和mysql5区别

哎呀,这两个版本是我已经陷入的陷阱,所以我必须告诉你它们。

我们先来说说MySQL和MySQL5 的区别。
当时我还在一家互联网公司做数据库维护。
我记得那是2 01 0年左右,公司刚刚从MySQL4 .1 迁移到MySQL5 当时我一升级,哇,性能真的提高了。
之前查数据的时候要等几十秒,升级之后就几秒就出来了。
另外,当时我们还在使用MyISAM,当同时请求太多时,系统会变得非常阻塞。
升级到MySQL5 并使用InnoDB后,并发量增加了一倍多。

安全性也是一个很大的变化。
以前密码都是以明文形式传输的,所以我担心数据安全。
升级到MySQL5 后,加密传输似乎可靠多了。
权限管理也更加灵活,可以根据不同的需求设置不同的权限。

存储引擎,真是个大坑。
之前用MyISAM的时候,不知道数据是否损坏了。
升级后我使用了InnoDB。
尽管性能更好,但维护起来也困难得多。
不过,一旦习惯了,就会习惯的。

我们来谈谈MySQL5 和MySQL8 的区别。
2 01 8 年,公司再次升级,这次直接从MySQL5 迁移到MySQL8 从性能的角度来看,这是一个质的飞跃。
我之前的数据库升级后,查询速度提高了,系统响应也更快了。

新功能,这次我看到了。
窗口函数、CTE,这些以前不敢想的函数,MySQL8 都有。
管理复杂的数据操作确实很容易。

在安全性方面,MySQL8 又向前迈进了一步。
权限管理更加精细,再也不用担心权限设置错误了。

存储引擎方面,MySQL8 直接使用InnoDB作为默认存储引擎,这让我这个习惯使用InnoDB的运维人员舒服多了。

总之,这两个版本MySQL的每次更新似乎都打开了新世界的大门。
不过,归根结底,选择哪个版本还是要看你的具体需求。

3 MySQL8 因加密规则改变而出现的错误(Navicat DBeaver)

说实话,Navicat 无法连接 MySQL8 有两个原因。
首先,Navicat 太旧,不支持新密码。
我之前试过Navicat1 5 ,ok,直接连接。

另一个技巧是恢复到旧的密码方法。
需要以管理员身份打开cmd,mysql-uroot-root。
此步骤旨在防止您的密码过期。
然后更改密码:ALTERUSER 'root'@'localhost'IDENTIFIEDBY 'password'PASSWORDEXPIRENEVER;这将使密码永远有效。
然后恢复旧密码方法:ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'新密码';,注意这是mysql_native_password。
最后,FLUSHPRIVILEGES;更新。

如果 DBeaver 无法连接,那就另当别论了。
您需要更改客户端设置并将allowPublicKeyRetrieval 参数设置为true。
然后还要更改 ALTERUSER 'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY '新密码';密码如上。

但请注意,如果用户使用sha2 5 6 _password认证,则密码的传输必须受到保护。
最好使用 TLS,否则使用 RSA 公钥加密。
设置ServerRSAPublicKeyFile或AllowPublicKeyRetrieval=True以允许客户端自动检索公钥。
但是,AllowPublicKeyRetrieval=True 设置存在风险,很容易受到攻击者的攻击,因此它默认为 False,并且必须显式启用。

一切都已决定。