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