使用架构初始化数据库可能是一个复杂的过程,尤其是在使用 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初始化数据库,请按照以下步骤操作:
mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql
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
docker-compose build docker-compose up
通过使用/docker-entrypoint-initdb.d 目录中,容器初始化时将自动针对 MySQL 数据库执行 SQL 文件,确保数据库使用所需的架构进行初始化。
以上是如何在 Docker 容器中成功初始化 MySQL 数据库架构?的详细内容。更多信息请关注PHP中文网其他相关文章!