gpt4 book ai didi

mysql - 是否可以将确定的 $MYSQL_ROOT_PASS 从外部 docker 传递给 MySQL docker?如果是这样怎么办?

转载 作者:行者123 更新时间:2023-11-30 21:25:42 24 4
gpt4 key购买 nike

所以我正在编写一个安装脚本,因为我无法在 armfh 上找到可靠的 MySQL 替代品(数据库必须与 MySQL 兼容),我正在使用一个社区来解决这个问题,但它没有按原样启动数据库。它需要我传递以下参数。

mysql -h"db" -u"root" -p"$MYSQL_ROOT_PASSWORD" "$MYSQL_DATABASE" < /docker-entrypoint-initdb.d/1_db.sql

从 docker 内部。问题是我希望它作为一个流畅的安装脚本自然地流动。我尝试使用以下命令传递文档并获得密码提示:

docker exec -it db bash -c "mysql -h"db" -u"root" -p"$MYSQL_ROOT_PASSWORD" "$MYSQL_DATABASE" < /docker-entrypoint-initdb.d/1_db.sql"

如果也尝试过:

docker exec -it db bash -c "mysql -h'db' -u'root' -p'$MYSQL_ROOT_PASSWORD' '$MYSQL_DATABASE' < /docker-entrypoint-initdb.d/1_db.sql

FwIW:我使用了 MYSQL_ROOT_PASSWORD=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1)定义密码。如果我手动输入 docker send 命令 1(在引号中),数据库就会启动。

所以总结一下我的问题:是否可以通过上述命令从 docker 外部激活 1_db.sql 文件?

任何帮助都会很棒!提前致谢!

最佳答案

Is it possible to pass a command like the above to activate the 1_db.sql file from outside docker?

你可以尝试类似的东西

cat 1_db.sql  | docker exec -i test bash -c 'mysql  -uroot -p$MYSQL_ROOT_PASSWORD $MYSQL_DATABASE'

另外,请记住,当您尝试 exec bash -c "mysql -uroot -p$MYSQL_ROOT_PASSWORD"时,它会在主机中而不是在容器中为 MYSQL_ROOT_PASSWORD 使用单个引号。

determined $MYSQL_ROOT_PASS to MySQL docker from outside docker? If so how?

docker exec -i test bash -c 'echo mysql docker password is $MYSQL_ROOT_PASSWORD'

关于mysql - 是否可以将确定的 $MYSQL_ROOT_PASS 从外部 docker 传递给 MySQL docker?如果是这样怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59186456/

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