认证插件';缓存密码';无法在circleci/mysql中加载
我最近在测试CircleCi 2中的代码时遇到了一些问题。 config.yml的部分内容:认证插件';缓存密码';无法在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
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的答案更好