在bash中将mysql错误写入日志文件

时间:2015-09-14 12:20:08

标签: mysql bash shell logging error-handling

我正在编写一个bash脚本,我想将MySQL错误重定向到一个日志文件。

我在下面取得了成功(ERROR 1045(28000):用户拒绝访问...被附加到日志文件中)

mysql -u user -pWrongpass -sN -e "query to update db;" 2>&1 | tee -a log
但是,我没有成功。我运行脚本时会显示错误,但我没有在日志文件中看到它。

result=$(mysql -u user -pWrongpass -sN "query to select from db;") 2>&1 | tee -a log

在将任何潜在错误打印到日志文件时,将查询结果放入变量的正确语法是什么?

先谢谢,如果我不清楚,请告诉我。)

1 个答案:

答案 0 :(得分:1)

您必须将整个管道放在命令替换中。

result=$(mysql -u user -pWrongpass -sN "query to select from db;" 2>&1 |
         tee -a log)

由于mysql的输出通过管道传送到tee,因此您需要在tee中捕获result的输出。