一、目前mysql的版本更新的特别快了,那么我们在使用的时候出现navicat连接异常的问题了,原因是因为navicat版本过低导致的。
具体是因为:mysql8.0.4为了更安全的连接,默认从mysql_native_password改成了caching_sha2_password了。所以导致很多连接工具连接失败了。
这样改的目的是加密算法的改变意味着安全。
二、解决办法有两个
1)更新navicat的包,可以解决这个问题。
2)修改默认加密方式,通过docker部署mysql举例
version: '3' services: xbd-mysql: image: mysql:8.0.19 restart: always container_name: xbd-mysql environment: - TZ=Asia/Shanghai - MYSQL_ROOT_PASSWORD=root volumes: - /var/lib/mysql:/var/lib/mysql ports: - 3306:3306 privileged: true command: ['--lower_case_table_names=1', '--character-set-server=utf8', '--collation-server=utf8_general_ci', '--default_authentication_plugin=mysql_native_password', '--sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION']
这种方式默认启动有效,如果存在用户数据,需要手动修改
myql.user中plugin类型为mysql_native_password。
标签:加密,NO,--,navicat,报错,mysql,password,连接 From: https://www.cnblogs.com/ll409546297/p/17413004.html