首页 > 数据库 > mysql教程 > 如何在 Docker 容器中成功初始化 MySQL 数据库架构?

如何在 Docker 容器中成功初始化 MySQL 数据库架构?

Susan Sarandon
发布: 2024-12-04 06:41:10
原创
1065 人浏览过

How to Successfully Initialize a MySQL Database Schema within a Docker Container?

如何在 Docker 容器中使用架构初始化 MySQL 数据库

使用架构初始化数据库可能是一个复杂的过程,尤其是在使用 Docker 容器时。本文解决了使用 Docker 容器使用架构初始化 MySQL 数据库时遇到的常见问题,并提供了基于将架构转储到文件并将其添加到 /docker-entrypoint-initdb.d 目录的解决方案。

问题描述

尝试使用 MySQL 数据库创建 Docker 容器并使用以下架构初始化它时Dockerfile:

FROM mysql
MAINTAINER (me) <email>

# Copy the database schema to the /data directory
COPY files/epcis_schema.sql /data/epcis_schema.sql

# Change the working directory
WORKDIR data

CMD mysql -u $MYSQL_USER -p $MYSQL_PASSWORD $MYSQL_DATABASE < epcis_schema.sql
登录后复制

容器启动失败,CMD命令执行不成功。

解决方案

要使用schema初始化数据库,请按照以下步骤操作:

  1. 将 MySQL 架构转储到文件using:
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
登录后复制
  1. 将 schema 文件添加到 Dockerfile 中的 /docker-entrypoint-initdb.d 目录中:
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
登录后复制
  1. 使用以下命令启动 Docker MySQL 实例:
docker-compose build
docker-compose up
登录后复制

通过使用/docker-entrypoint-initdb.d 目录中,容器初始化时将自动针对 MySQL 数据库执行 SQL 文件,确保数据库使用所需的架构进行初始化。

以上是如何在 Docker 容器中成功初始化 MySQL 数据库架构?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板