使用Docker命令从Mysql导出视图

时间:2018-10-13 17:41:01

标签: mysql docker view export

下面的代码从数据库中单独提取视图。但是,我试图让它在单个docker run或exec命令中运行。

现在,当我尝试时,管道命令以及尝试转义引号的组合都会给我带来错误。

implementation ('com.android.support:appcompat-v7:27.1.1') {
    exclude group: 'android.arch.lifecycle'
}


api "android.arch.lifecycle:runtime:1.1.1"
kapt "android.arch.persistence.room:compiler:1.1.1"

有人知道如何在一个docker命令中实现这一目标吗?

例如:

mysql -u username INFORMATION_SCHEMA
--skip-column-names --batch
-e "select table_name from tables where table_type = 'VIEW'
  and table_schema = 'database'"
| xargs mysqldump -u username database
> views.sql

很多爱。

2 个答案:

答案 0 :(得分:1)

您可以将所有命令放入容器中的bash脚本中,然后执行脚本即可!

答案 1 :(得分:1)

您可以在非“数据库服务器上”的某个地方运行Work[0] += displayQuestion(QuestionList[0]); 客户端命令和mysql工具。在您的情况下,假设您使用诸如mysqldump之类的选项启动了数据库,则可以从具有MySQL服务器的主机上运行它们。看起来像

docker run -p 3306:3306

这避免了所有尝试将其输入mysql -h 127.0.0.1 -u username INFORMATION_SCHEMA \ --skip-column-names --batch \ -e "select table_name from tables where table_type = 'VIEW' and table_schema = 'database'" \ | xargs mysqldump -h 127.0.0.1 -u username database \ > views.sql 的shell引用问题,也避免了需要主机上的根级访问权限来执行管理任务的要求(如果可以在以下位置运行任何Docker命令)然后,您就可以使用docker exec将自己添加到主持人的docker run中。

尽管如此,我也同意@MichaelBoesl的回答:这已经足够长,以至于很难将它变成单线,这真的不值得各种报价和转义带来的麻烦。我可能会将其写到脚本中,然后将SQL查询放入文件中。

/etc/sudoers