连接mysql 8.0数据库,pycharm出现此错误,又没有任何提示,“NULL”令我非常生气,而baidu与bing也找不到关于2059的解决方法。
在stackflow中有人提出版本切换回5.7.22就正常了。但他也不清楚为什么。
我对比了8.0和5.7.22的安装过程,(ps:我用的是web installer 安装方式),发现8.0installer 介绍提供了一种新的认证加密方式caching_sha2_password,建议需要更新到最新的connector与client。不过它还给了另一种选择,即沿用之前版本的加密方式 mysql_native_password,当初我第一次安装时选的是最新的加密方式。当我选择之前版本加密方式时,到最后安装成功后,再用pycharm连接。不会再出现这个错误了。所以可以推断这个报错。应该是新版本8.0 新的加密方式导致的问题。后查证,navicat暂时不支持此方式
解决方法1:(1)卸掉mysql 8.0,(记得卸干净)。重新安装选择沿用旧版本。
(2)或者改回来 default_authentication_plugin=mysql_native_password
解决方法2:按照installer上面所说使用最新connector与client。不过如果使用navicat的话,似乎要期待navicat的更新才行