我有一个运行 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/