无法在circleci/mysql中加载身份验证插件“caching\u sha2\u password”

axr492tv  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(684)

我最近在circleci2中测试代码时遇到了一些问题。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 DBERROR 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 标记,但不确定是否适用于此处,或如何在circle ci设置中应用它。

vptzau2j

vptzau2j1#

这个问题是mysql 8特有的(正如raymond所指出的),错误发生的原因是circleci将他们最新的docker映像升级到mysql 8。因此,针对我们的具体案例(我们使用的是MySQL5.7)的解决方案只是为mysql docker映像指定适当的标记:

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

jucafojl2#

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

相关问题