无法在 circleci/mysql 中加载身份验证插件 'caching_sha2_password'

Authentication plugin 'caching_sha2_password' cannot be loaded in circleci/mysql

我最近在 CircleCi 2 中测试代码时遇到了问题。 我们的部分 config.yml:

jobs:
  build:
    environment:
    docker:
      ...
      - image: circleci/mysql
      - image: rabbitmq:3-alpine
    working_directory: ~/webapp

    steps:
      ...
      - run:
          name: Prepare DB
          command: echo "create database" | mysql --host 127.0.0.1

构建在 Prepare DB 失败,

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: Error loading shared library /usr/lib/mysql/plugin/caching_sha2_password.so: No such file or directory Exited with code 1

这个错误现在才出现,并且没有对 circle / mysql 设置进行任何更改。

来自例如 可以设置 --default-authentication-plugin=mysql_native_password 标志是特定的ci,但不确定这是否适用于此,或者如何在 circle ci 设置。

这个问题是 mysql 8 特有的(正如 Raymond 所指出的),并且由于 CircleCi 将他们最新的 docker 图像升级到 mysql 8 而发生错误。因此,针对我们的具体情况(我们使用 mysql 5.7)的解决方案只是为 mysql docker 图像指定适当的标签:

jobs:
  build:
    environment:
    docker:
      ...
      - image: circleci/mysql:5.7

如果要保留mysql8,这样配置

- image: circleci/mysql:latest
  # just add this:
  command: [--default-authentication-plugin=mysql_native_password]
  environment:
    MYSQL_DATABASE: myapp_test

来源:https://discuss.circleci.com/t/solved-mysql-8-0-without-mysql2-authentication-plugin-caching-sha2-password-cannot-be-loaded/25791