【问题标题】:Pass result of Curl request to mysql command line将 Curl 请求的结果传递给 mysql 命令行
【发布时间】:2010-11-08 02:28:19
【问题描述】:

所以这有点奇怪,但希望这里有人知道一些命令行。可能也必须发布到 serverfault,我们会看到。

我试图弄清楚如何将 curl 请求的结果传递给 mysql 命令行应用程序。所以基本上有点像这样 -

mysql --user=root --password=my_pass < (curl http://localhost:3000/application.sql) 

该 URL 基本上返回带有 sql 语句的文本响应。

一些上下文:

我正在开发的应用程序支持多个安装,作为新实例安装过程的一部分,我们为新实例创建了“数据”数据库的副本。

我正在尝试尽可能地自动化部署过程,因此我在 Rails 中构建了一个小型“仪表板”应用程序,它可以为每个实例生成 sql 语句、配置文件等,还可以帮助我们查看有关实例的统计信息和其他有趣的东西。现在我正在编写 capistrano 任务,以根据我作为变量传入的安装 ID 实际进行部署。

初始部署设置包括创建应用程序数据库,此 sql 请求将执行此操作。理论上我可以在 wget 请求中拉取文件,执行并删除它,但我认为只告诉远程服务器 curl 请求并一步执行它会更干净。

所以有什么想法吗?

【问题讨论】:

    标签: bash curl capistrano


    【解决方案1】:

    我相当肯定你最初的语法不会工作,因为 '

    curl http://localhost:3000/application.sql | mysql --user=root --password=my_pass 
    

    【讨论】:

      【解决方案2】:

      在 Bash 中,您可以进行进程替换:

      mysql ... < <(curl ...)
      

      【讨论】:

      • 我不知道你能做到这一点,这很好。
      猜你喜欢
      • 2015-08-03
      • 2018-03-09
      • 2018-03-14
      • 2012-06-09
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      相关资源
      最近更新 更多