我有一个运行着mysql的docker容器,我想将一个.sql文件推送到该容器,并让mysql执行其中的命令。第一步相当简单:
docker cp ./dummy.sql <container_id>:/
接下来我要尝试从命令行中运行mysql,并指向我刚刚推送到容器中的文件。
docker exec <container_id> mysql -u root -ppassword < /dummy.sql
这个命令似乎试图在本地将/sample.sql作为stdin,而不是在容器中。我也尝试在容器ID后面加上引号,但似乎也不起作用。
我还尝试将命令放入一个.sh文件中并将其推送到Docker容器中,然后只需执行该文件,但这不太理想,并且也没有起作用。有什么建议吗?
-e
或cat
。只需使用docker exec -i <container_name> mysql -u root -ppassword < /path/to/script.sql
即可,假设脚本在主机上。 - Keenan