【问题标题】:Suppress warning when sourcing sql file back to mysql database将 sql 文件返回到 mysql 数据库时抑制警告
【发布时间】:2018-09-27 04:08:20
【问题描述】:
/opt/mysql/bin/mysqldump -udbuser -pAdmin@123 -h192.167.93.44 -P32083 --single-transaction --set-gtid-purged=OFF --databases mohwscdrdb mohwsecsdb moresourcelifecycledb moorderdb movdcservicedb > ./backup.sql 2>&1 | grep -v "Warning"

按照我的想法运行,没有“警告:使用密码..” blablabla。

但是当我执行时:

/opt/mysql/bin/mysql -udbuser -pAdmin@123 -h192.167.93.44 -P32083 < ./backup.sql 2>&1 | grep -v "Warning"

为了在没有警告的情况下返回 sql 文件,它失败了,说:

/' at line 1

我认为这是因为我在一行中有两个不同的重定向方向&lt;&gt;),但是如何解决这个问题?

【问题讨论】:

    标签: mysql linux shell


    【解决方案1】:

    2&gt;&amp;1 将两个文件描述符绑定在一起。您只想在 stderr 上运行 grep,因此使用 '|&' 只有 stderr 进入 grep。

    所以关于倾销:

    /opt/mysql/bin/mysqldump ... movdcservicedb > ./backup.sql |& grep -v "Warning"
    

    【讨论】:

    • @danblank,谢谢你的回答,但在这里我想要的是让第二个 shell 命令正确运行..
    【解决方案2】:
    /opt/mysql/bin/mysqldump -udbuser -pAdmin@123 **> ./backup.sql** 2>&1 | grep -v "Warning"
    

    更改顺序,将重定向部分移到命令末尾,即可完成。

    /opt/mysql/bin/mysqldump -udbuser -pAdmin@123 2>&1 | grep -v "Warning" **> ./backup.sql**
    

    顺便说一句,导入sql应该在命令中间保留&lt; ./backup.sql

    /opt/mysql/bin/mysql -udbuser -pAdmin@123 < ./backup.sql 2>&1 | grep -v "Warning"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 2013-01-28
      相关资源
      最近更新 更多