首页 >数据库 >mysql教程 >如何在 Docker 容器内使用架构初始化 MySQL 数据库?

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

Linda Hamilton
Linda Hamilton原创
2024-12-25 12:34:09217浏览

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