gpt4 book ai didi

mysql - 如何在我的 MySQL-Docker 容器中导入现有的 MySQL 数据库?

转载 作者:行者123 更新时间:2023-11-29 07:31:41 25 4
gpt4 key购买 nike

我已经基于 Docker Hub 的 MySQL 官方镜像创建了一个 docker 容器。它工作正常,但我在数据库导入方面遇到了一些麻烦。

我的带有 SQL 指令的文件已经存储在我的容器的文件夹/docker-entrypoint-initdb.d 中,但它不起作用!我已经将我的 sql-import.sql 复制到/var/lib/docker/volumes/mysql-dump/_data,但是当我调用“SHOW DATABASES;”时我只能看到我的数据库的名称。在我的容器内。当我调用“SHOW TABLES FROM myDB;”时,没有可用的表。如何导入 MySQL 数据库的内容?

这是我的 Dockerfile:

FROM mysql:5.7
ADD ./init-scripts/*.sql /docker-entrypoint-initdb.d/
ADD ./config/my.cnf /root/
RUN cd /root/ && \
chmod 0600 my.cnf && \
mv my.cnf .my.cnf

ENV MYSQL_DATABASE=regex
ENV MYSQL_ROOT_PASSWORD=mypassword

EXPOSE 3306

MySQL View in the MySQL-Container

最佳答案

有几种导入方法。如果您的竞争者正在运行,则使用 docker exec:

解决方案一:

docker exec -i <id_conteneur> /usr/bin/mysql -u <fooUser> -e "CREATE DATABASE mydb"

cat schema.sql | docker exec -i <id_conteneur> /usr/bin/mysql -u <fooUser> --password=<password> <database>

解决方案 2:

在 bash 脚本中:

#!/bin/bash 
/usr/bin/mysqld_safe --skip-grant-tables &
mysql -u <fooUser> -e "CREATE DATABASE mydb"
mysql -u <fooUser> mydb < schema.sql

并使用运行命令添加到您的 DockerFile 中:

ADD create_db.sh /tmp/create_db.sh
RUN /tmp/create_db.sh

关于mysql - 如何在我的 MySQL-Docker 容器中导入现有的 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50948372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com