mysql - 在 docker 容器上执行 SQL 脚本

标签 mysql docker

我有一个运行 mysql 的 docker 容器,我想将一个 .sql 文件推送到容器中,然后让 mysql 执行其中的命令。第一步相当简单:

docker cp ./dummy.sql <container_id>:/

从那里我尝试从命令行运行 mysql 并将其指向我刚刚推送到容器的文件。

docker exec <container_id> mysql -u root -ppassword < /dummy.sql

此命令似乎试图在本地而不是在容器上使用/sample.sql 作为标准输入。我还尝试在容器 ID 之后的所有内容周围加上引号,这似乎也不起作用。

我还尝试将包含命令的 .sh 文件推送到 docker 容器,然后执行该文件,但这不太理想,也无法正常工作。有什么建议吗?

最佳答案

如果您要在命令中进行管道重定向,请将其作为字符串传递给 /bin/sh:

docker exec <container_id> /bin/sh -c 'mysql -u root -ppassword </dummy.sql'

关于mysql - 在 docker 容器上执行 SQL 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34779894/

相关文章:

mysql - 如果一列非常频繁,则mysql中的复合索引

带有 COUNT 的 MySQL 查询和来自另一个表的连接列

mysql - 如何计算具有 Rails 关系的列总数

java - ECS 容器中 JVM 内存增长超出限制

linux - X11 显示变量未设置 - 无法运行 Docker Image

mysql - 如何在 MySQL 中使用 GROUP BY 和 JOIN 更新每个分组行?

Mysql POINT列用于距离搜索

spring - 无法连接到本地 Spring boot 中 docker 上运行的 redis sentinel

docker - 与私有(private) docker 注册表问题的远程通信

postgresql - 如何在 Windows 10 docker 上从 tar 文件恢复 postgres 数据