将 sql 文件返回到 mysql 数据库时抑制警告

问题描述 投票:0回答:3
/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

我认为这是因为我在一行中有两个不同的重定向方向

<
>
),但如何解决这个问题?

mysql linux shell
3个回答
0
投票

2>&1
将两个文件描述符联系在一起。您只想在 stderr 上进行 grep,因此通过使用“|&”,只有 stderr 会转到 grep。

关于倾销:

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

0
投票
/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应该将

< ./backup.sql
保留在命令中间。

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

0
投票

有人请检查这是否适用于他们,因为它适用于我的导出(因此完全减轻了删除转储文件本身中的警告的需要):

mysqldump -ppassword123 dbname 1> ./backup.sql

这输出到终端:

mysqldump: [Warning] Using a password on the command line interface can be insecure.

然后将转储保存到./backup.sql

这太简单了,我现在都怀疑自己了:/

© www.soinside.com 2019 - 2024. All rights reserved.