首頁 >資料庫 >mysql教程 >如何在 Docker 容器內使用架構初始化 MySQL 資料庫?

如何在 Docker 容器內使用架構初始化 MySQL 資料庫?

Linda Hamilton
Linda Hamilton原創
2024-12-25 12:34:09179瀏覽

How to Initialize a MySQL Database with Schema Inside a Docker Container?

在 Docker 容器中使用架構初始化 MySQL 資料庫

在 Docker 容器中使用架構初始化 MySQL 資料庫可能具有挑戰性。以下是解決此問題的解決方案:

1.轉儲MySQL 架構

使用下列指令將MySQL 架構轉儲到檔案:

mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql

2.將架構檔案加入到Dockerfile

在 Dockerfile 中,使用 ADD 指令將架構檔案新增至 /docker-entrypoint-initdb.d 目錄。容器中的 docker-entrypoint.sh 腳本將針對資料庫執行此目錄中的任何 .sql 檔案。

範例 Dockerfile:

FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306

3.建置並執行 Docker 容器

修改 Dockerfile後,建置並執行容器:

docker-compose build
docker-compose up

4.附加說明

  • 確保MySQL使用者有足夠的權限來建立資料庫和表格。
  • 根據需要調整MySQL主機、使用者名稱、密碼和架構名稱.
  • 驗證docker-entrypoint.sh 腳本是否可由容器內的root 使用者執行,因為它負責執行schema

依照以下步驟,您可以在Docker 容器內成功初始化具有schema 的MySQL 資料庫,並消除CMD無法正常執行的問題。

以上是如何在 Docker 容器內使用架構初始化 MySQL 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn