gpt4 book ai didi

linux - shell 保存MySQL查询结果到文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:26 27 4
gpt4 key购买 nike

我有一个运行 MySQL 查询的脚本,如下所示:

#!/bin/sh

user="root"
pwd="test"
database="mydb"
command="long...
long... query in
multiple lines"

mysql -u $user -p$pwd << EOF
use $database;
$command
EOF

此查询执行从一个表到另一个表的备份。不使用mysqlINTO OUTFILE是否可以将查询结果保存到文件中?我只想知道查询是失败还是成功。

如果它成功了,比如 1 row(s) affected 或者失败了 Error Code: 1064。你的 SQL 语法有错误;查看与您的 MySQL 服务器版本对应的手册,了解在 ... 附近使用的正确语法

更新

解决方案 1:() 充当命令链,因此将它们包装在变量中以获得这些命令的结果。然后简单地将那个变量的结果输出到一个文件中。

output=$( mysql -u $user -p$pwd << EOF 
use $database;
$command
EOF
)
echo "$output" >> /events/mysql.log

解决方案 2:使用 tee 作为系统命令将命令的结果发送到文件中,但这需要从 crontab 完成,如下所示:

*/1 * * * * root sh /events/mysql.sh |tee -a /events/mysql.log

http://forums.mysql.com/read.php?10,391070,391983#msg-391983

我的工作解决方案:

user="root"
pwd="root12345"
database="mydb"
command="long ...long query"

mysql -u $user -p$pwd << EOF >> /events/mysql.log 2>&1
use $database;
$command;
EOF

最佳答案

这应该有效:

output=$( mysql -u $user -p$pwd << EOF 
use $database;
$command
EOF
)
echo "$output" >> outfile

关于linux - shell 保存MySQL查询结果到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30030493/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com