mysql 的 sql 语句中有办法获取系统的环境变量吗以及如何初始化 mysql 的时候创建用户?

2020-09-26 13:30:39 +08:00
 yestodayHadRain
接上一个帖 /t/710231

楼主想通过 docker-compose 启一个 javaweb 服务,已经把 javaweb 中的配置文件抽取到了系统的环境变量中然后通过一个配置文件来控制.但是 mysql 这里遇到些问题:
1.想根据环境变量中 database 的名字来动态创建数据库.现在只能写死数据库的名字,不知道如何在 sql 中获取系统的环境变量
2.想根据环境变量中 数据库用户和密码 在数据库初始化的时候创建用户名密码,这块也不知道怎么实现,目前只能写死 root 然后 用环境变量中的 MYSQL_ROOT_PASSWORD
906 次点击
所在节点    问与答
12 条回复
rbe
2020-09-26 13:53:31 +08:00
在 pull 镜像的时候为啥不去 hub.docker.com 看一眼? Mysql 官方镜像介绍里面基本什么基础操作都有提到。https://hub.docker.com/_/mysql
比如你说的这些也就是 MYSQL_DATABASE,MYSQL_USER, MYSQL_PASSWORD 等几个环境变量.
假如你下一步还需要创建完数据库 init 一些 sql,上面也全都有写
yestodayHadRain
2020-09-26 15:01:30 +08:00
@rbe docker 官方文档也没有写 sql 语句中 如何获取环境变量呀
privil
2020-09-26 16:03:41 +08:00
你反了,不是在 sql 里面执行,是外部 bash 生产语句到 sql 执行。
yestodayHadRain
2020-09-27 21:14:24 +08:00
@privil 可以给个事例吗?
privil
2020-09-27 21:18:29 +08:00
privil
2020-09-27 21:18:39 +08:00
~/kong/docker-compose.yml
privil
2020-09-27 21:19:10 +08:00
看这个博客里面 yml 参考下
yestodayHadRain
2020-09-27 21:43:47 +08:00
@privil 刚看了下,有个地方没看明白 POSTGRES_DB: kong
POSTGRES_USER: kong
POSTGRES_PASSWORD: kong 这三个变量都是自己定义的,数据库初始化的时候是如何创建的呢?
yestodayHadRain
2020-09-27 21:46:03 +08:00
@privil 我也是这样写的,但是数据库初始化的时候没有创建对应的库 用户,可以加您一个联系方式吗?
privil
2020-09-28 09:48:10 +08:00
@yestodayHadRain #8 就是一楼说的,镜像都会带变量的来初始化的。
yestodayHadRain
2020-09-28 11:57:34 +08:00
@privil 可是我用了变量,没有创建用户也没有创建库
yestodayHadRain
2020-09-28 12:39:34 +08:00
@privil 大佬,可以帮忙看下吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/710646

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX