如何解决如何从主机执行mysqldump命令到mysql docker容器
我想为在Docker容器中运行的数据库创建mysql转储。但是我不想进入容器并执行命令,而是从主机上执行。有没有办法做到这一点。我尝试了几件事,但是命令可能不对。
docker exec -d mysql sh mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql
docker exec -d mysql sh $(mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql)
docker exec -d mysql mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql
dumps
目录已绑定到主机。
这些命令似乎不是正确的方法,或者根本不是正确的方法。这些总是以错误结尾:
bash:/dumps/MyNewDump.sql:没有这样的文件或目录
但是,如果我只是在容器内运行mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql
,则效果很好。
解决方法
这对我有效(只需替换容器ID):
docker exec 1d3595c0ce87 sh -c 'mysqldump -uroot -pSomePassword DBName > /dumps/MyNewDump.sql'
mysqldump: [Warning] Using a password on the command line interface can be insecure.
,
mysqldump
使用通常的MySQL CLI选项连接到在其他地方运行的服务器。这意味着您可以直接从主机运行它,而无需docker exec
(管理员)权限。
mysqldump -h127.0.0.1 -uroot -pSomePassword DBName > MyNewDump.sql
与docker exec
表单相反,这会在主机上创建转储文件,但这可能正是您想要的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。