web-dev-qa-db-ja.com

認証プラグイン「caching_sha2_password」をcircleci / mysqlにロードできません

最近、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
simen-andresen

この問題はmysql8固有であり(Raymondが指摘)、CircleCiが最新のDockerイメージをmysql 8にアップグレードしたためにエラーが発生しました。したがって、特定のケース(mysql 5.7を使用)の解決策は、単にmysql dockerイメージの適切なタグ:

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

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

0