mysql8.0提供了一种新的认证加密方式caching_sha2_password,建议需要更新到最新的connector与client。不过它还给了另一种选择,即沿用之前版本的加密方式 mysql_native_password。解决mysqlexceptions.OperationalError: (2059,null)的办法之一:
修改mysql8.0的默认加密方式,在my.ini里修改成如下:
default_authentication_plugin=mysql_native_password

然后重启mysql。
再创建新用户。此时新用户的加密方式为mysql_native_password。连接数据库就不会报2059的错了。