一、目前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。