gpt4 book ai didi

mysql - 如何在GitHub Actions中将 "mysql_native_password"传递给MySQL服务?

转载 作者:行者123 更新时间:2023-12-02 17:52:00 25 4
gpt4 key购买 nike

我的GitHub Action配置的示例:

jobs:
unit-test:
name: Unit Testing
runs-on: ubuntu-latest
services:
mysql:
image: mysql:8.0
env:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: db
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5
steps:
- name: Verify MySQL connection from host
run: mysql --host mysql --port 3306 -uroot -ppassword -e "SHOW DATABASES"

使用MySQL 5.7可以正常工作。但是对于MySQL 8.0,它显示:
ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded: ...

在MySQL docker docs中有一行允许 mysql_native_password auth:
command: --default-authentication-plugin=mysql_native_password

如何允许GitHub Actions/service中的 mysql_native_password auth插件?

最佳答案

问题是GH操作不会将--entrypoint选项和相关参数移动到命令的末尾,而是附加了其他选项(例如env)。后面的env service部分中指定的变量。
经过大量的试验和我发现的错误,您可以指定环境。手动使用vars,像这样的命令可以正常工作:

...
services:
mysql:
image: mysql:8
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5 -e MYSQL_ROOT_PASSWORD=xxx -e MYSQL_USER=xxx -e MYSQL_PASSWORD=xxx -e MYSQL_DATABASE=xxx --entrypoint sh mysql:8 -c "exec docker-entrypoint.sh mysqld --default-authentication-plugin=mysql_native_password"
steps:
...

关于mysql - 如何在GitHub Actions中将 "mysql_native_password"传递给MySQL服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60902904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com