【问题标题】:Authentication plugin 'caching_sha2_password' cannot be loaded in circleci/mysql无法在 circleci/mysql 中加载身份验证插件“caching_sha2_password”
【发布时间】:2018-10-03 09:09:22
【问题描述】:

我最近在 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

现在才出现这个错误,圈子/mysql设置没有做任何改动。

来自例如https://stackoverflow.com/a/49944625/2713641 指定可以设置 --default-authentication-plugin=mysql_native_password 标志,但不确定是否适用于此处,或者如何在圆形 ci 设置中应用它。

【问题讨论】:

标签: mysql circleci circleci-2.0 mysql-8.0


【解决方案1】:

如果要保留mysql 8,这样配置

- 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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 有些人使用 mysql 8 是有原因的,他们的设置不向后兼容 mysql 5.7。在这种情况下@Yannick 的答案更好
    猜你喜欢
    • 2019-12-25
    • 2020-12-07
    • 1970-01-01
    • 2018-11-07
    相关资源
    最近更新 更多