mysql加密连接报错处理记录

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章