gpt4 book ai didi

mysql - 使用 mariaDB 将 sql 转储文件安装到 docker 容器

转载 作者:行者123 更新时间:2023-11-29 01:20:12 25 4
gpt4 key购买 nike

我只是在学习 docker 的基础知识,但在从本地系统导入 SQl 文件时卡住了。我在 Windows 10 上并允许我的 docker 容器访问我的共享驱动器。我有一个位于 D 上的 SQL 文件,我想导入到我从 docker hub 获得的 Maria DB 的基本图像。

我找到了一个命令来在我的图像上安装该 sql 文件,并尝试从容器 sql 命令提示符中直接导入图像,但出现无法打开文件的错误。

以下是我尝试过的两种方法,但是我应该在哪里存储我的 sql 转储以及如何导入它?

方法一通过mysql命令行尝试

winpty docker run -it --link *some-mariadb*:mysql --rm mariadb sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

然后

use *database-created* // previously created 

然后

source d:/sql_dump_file.sql

方法二

docker exec -i my-new-database mysql -uroot -pnew-db-password --force < d:/sql_dump_file.sql

2016 年 5 月 12 日更新

所以在玩了一个令人失望的周末之后。我目前将驱动器更改为 C: 驱动器,因为似乎存在一些未知问题,我无法通过让 D: 驱动器工作来进行调试。

然后我找到了 inspect 命令来查看容器中挂载了哪些卷。我有以下内容,但我无法导入到 SQL,因为它说文件不存在,但它在 docker 中清楚地表明它在那里并已挂载,SQL 文件位于 map_me 文件夹中。我在C:主目录下创建了一个叫map_me的文件夹

docker inspect dbcontainer

"Mounts":
[
{
"Source": "/map_me",
"Destination": "/docker-entrypoint-initdb.d/sl_dump_fil‌​e.sql",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
]

最佳答案

我推荐以下内容:

在创建容器时,在 /docker-entrypoint-initdb.d/ 挂载你的 sql_dump_file.sql。官方 MariaDB 镜像将在启动时恢复它。

docker run -d --name <containername> -v d:/sql_dump_file.sql:/docker-entrypoint-initdb.d/sl_dump_file.sql <environment_variables> <imagename> <startup commands>

关于mysql - 使用 mariaDB 将 sql 转储文件安装到 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40925822/

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