簡體   English   中英

我想在Docker容器中創建MySql數據庫並在容器啟動時在其中執行一些DDL和DML語句

[英]I Want to create a MySql database in a docker container and execute few DDL and DML Statements in it while the container is starting up

這是我docker-compose.yml文件

version: "3.5"
services:
  docker-mysql:
    image: mysql:5.7
    container_name: docker-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=user_management
      - MYSQL_PASSWORD=password

默認數據庫創建為“ user_management” ,現在我要執行的文件中包含DDL和DML語句,即DDL語句(創建表)和DML語句(默認情況下插入幾個用戶)。 不是通過輸入bash並手動執行語句,而是通過任何自動docker方式加載包含DDL和DML語句的文件並執行它。

在mysql dockerhub中說,在/docker-entrypoint-initdb.d中找到的擴展名為.sh,.sql和.sql.gz的文件將在容器啟動時執行到MYSQL_DATABASE變量指定的數據庫。

version: "3.5"
services:
  docker-mysql:
     image: mysql:5.7
     container_name: docker-mysql
     environment:
       - MYSQL_ROOT_PASSWORD=password
       - MYSQL_DATABASE=user_management
       - MYSQL_PASSWORD=password
     volumes:
       - /yourscript:/docker-entrypoint-initdb.d

因此,如上所述,您可以裝載卷並在該位置添加DDL和DML腳本。 然后mysql將在啟動時執行它們。 /yourscript是腳本的位置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM