无法在circleci / mysql

时间:2018-04-23 10:40:49

标签: mysql circleci circleci-2.0 mysql-8.0

我最近在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设置中应用它。

2 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:0)

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