4

我最近在 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 设置进行任何更改。

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

4

2 回答 2

9

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

jobs:
  build:
    environment:
    docker:
      ...
      - image: circleci/mysql:5.7
于 2018-04-23T11:36:59.747 回答
3

如果要保留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

于 2019-06-25T13:49:35.080 回答