无法在 circleci/mysql 中加载身份验证插件 'caching_sha2_password'
Authentication plugin 'caching_sha2_password' cannot be loaded in 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 设置进行任何更改。
来自例如 可以设置 --default-authentication-plugin=mysql_native_password
标志是特定的ci,但不确定这是否适用于此,或者如何在 circle ci 设置。
这个问题是 mysql 8 特有的(正如 Raymond 所指出的),并且由于 CircleCi 将他们最新的 docker 图像升级到 mysql 8 而发生错误。因此,针对我们的具体情况(我们使用 mysql 5.7)的解决方案只是为 mysql docker 图像指定适当的标签:
jobs:
build:
environment:
docker:
...
- image: circleci/mysql:5.7
如果要保留mysql8,这样配置
- image: circleci/mysql:latest
# just add this:
command: [--default-authentication-plugin=mysql_native_password]
environment:
MYSQL_DATABASE: myapp_test
我最近在 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 设置进行任何更改。
来自例如--default-authentication-plugin=mysql_native_password
标志是特定的ci,但不确定这是否适用于此,或者如何在 circle ci 设置。
这个问题是 mysql 8 特有的(正如 Raymond 所指出的),并且由于 CircleCi 将他们最新的 docker 图像升级到 mysql 8 而发生错误。因此,针对我们的具体情况(我们使用 mysql 5.7)的解决方案只是为 mysql docker 图像指定适当的标签:
jobs:
build:
environment:
docker:
...
- image: circleci/mysql:5.7
如果要保留mysql8,这样配置
- image: circleci/mysql:latest
# just add this:
command: [--default-authentication-plugin=mysql_native_password]
environment:
MYSQL_DATABASE: myapp_test