如何在Docker启动时自动选择MySQL数据库?
我们目前正试图找到一种更有效的方法来处理MySQL docker启动过程,目前有以下几点:如何在Docker启动时自动选择MySQL数据库?,mysql,docker,Mysql,Docker,我们目前正试图找到一种更有效的方法来处理MySQL docker启动过程,目前有以下几点: FROM mysql ENV MYSQL_DATABASE marsdb COPY ./src/main/resources/ /docker-entrypoint-initdb.d/ docker exec -it marssql bin/bash mysql -u root -p pass use marsdb; 及 此设置的问题如下:一旦容器启动,当前必须有人手动进入容器并选择数据库,在本例
FROM mysql
ENV MYSQL_DATABASE marsdb
COPY ./src/main/resources/ /docker-entrypoint-initdb.d/
docker exec -it marssql bin/bash
mysql -u root -p
pass
use marsdb;
及
此设置的问题如下:一旦容器启动,当前必须有人手动进入容器并选择数据库,在本例中为marsdb
,如下所示:
FROM mysql
ENV MYSQL_DATABASE marsdb
COPY ./src/main/resources/ /docker-entrypoint-initdb.d/
docker exec -it marssql bin/bash
mysql -u root -p
pass
use marsdb;
有没有一种方法可以在容器启动后自动选择数据库?将DB名称传递给命令怎么样,这样就不需要切换了
mysql -u root -ppass marsdb
#or
docker exec -it marssql bin/bash -c "mysql -u root -ppass marsdb"
或者,如果您不确定DB,那么可以尝试使用默认DB环境变量运行容器。在此数据库中,MySQL将为自动创建数据库,并针对该数据库运行entrypoint脚本
docker run -it --rm --name marssql -e DEFAULT_DB=marsedb -e MYSQL_ROOT_PASSWORD=pass -e MYSQL_DATABASE=marsedb mysql
然后你可以像这样连接
docker exec -it marssql bin/bash -c "mysql -u root -ppass $DEFAULT_DB"
MYSQL\u数据库
此变量是可选的,允许您指定
要在映像启动时创建的数据库。如果用户/密码是
提供(见下文),则该用户将被授予超级用户访问权限
(对应于全部授予)此数据库。
将DB名称传递给命令怎么样,这样就不需要切换了
mysql -u root -ppass marsdb
#or
docker exec -it marssql bin/bash -c "mysql -u root -ppass marsdb"
或者,如果您不确定DB,那么可以尝试使用默认DB环境变量运行容器。在此数据库中,MySQL将为自动创建数据库,并针对该数据库运行entrypoint脚本
docker run -it --rm --name marssql -e DEFAULT_DB=marsedb -e MYSQL_ROOT_PASSWORD=pass -e MYSQL_DATABASE=marsedb mysql
然后你可以像这样连接
docker exec -it marssql bin/bash -c "mysql -u root -ppass $DEFAULT_DB"
MYSQL\u数据库
此变量是可选的,允许您指定
要在映像启动时创建的数据库。如果用户/密码是
提供(见下文),则该用户将被授予超级用户访问权限
(对应于全部授予)此数据库。
我想你应该考虑在启动集装箱时不要这样做。从使用数据库的任何应用程序连接到数据库时,可以在连接字符串中指定要处理的数据库
试着阅读下面的答案:p>我想你应该考虑在启动容器时不要这样做。从使用数据库的任何应用程序连接到数据库时,可以在连接字符串中指定要处理的数据库
尝试阅读以下答案:谢谢,我可以使用:docker exec-it marssql-bin/bash-c“mysql-uroot-ppass marsdb”解决它。谢谢,我可以使用:docker exec-it marssql-bin/bash-c“mysql-uroot-ppass marsdb”解决它