认证插件';缓存密码';无法在circleci/mysql中加载

认证插件';缓存密码';无法在circleci/mysql中加载,mysql,circleci,circleci-2.0,mysql-8.0,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: Pre

我最近在测试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):无法加载身份验证插件“caching_sha2_password”:加载共享库/usr/lib/mysql/plugin/caching_sha2_password时出错。所以:没有这样的文件或目录
以代码1退出

这个错误现在才发生,没有对circle/mysql设置进行任何更改


例如,可以指定设置一个
--默认身份验证插件=mysql\u native\u password
标志,但不确定该标志是否适用于此处,或者如何在循环ci设置中应用该标志。

此问题与mysql 8有关(正如Raymond指出的),由于CircleCi将其最新docker映像升级到mysql 8,因此发生了此错误。因此,我们具体案例的解决方案(我们使用的是mysql 5.7)只是为mysql docker映像指定适当的标记:

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

如果您想保留mysql 8,请这样配置它

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


来源:

添加了mysql 8.0标签,因为这个问题与mysql 8.0相关,似乎与这里的问题相同:有些人使用mysql 8的原因是,他们的设置与mysql 5.7不向后兼容。在这种情况下,@Yannick的答案更好