从命令行运行 MySQL 命令时将日志从 MySQL 获取到文件中

从命令行运行 MySQL 命令时将日志从 MySQL 获取到文件中

我试图在从命令行执行脚本时将日志从 MySQL 获取到文件中。

例如

mysql -v mydb u- alex -p**** < please_run_me.sql > /tmp/file.log

现在,工作已完成,但 file.log 为空。我认为 -v 会给我想要的输出。我想了解我如何

  1. 将 MySQL 的输出获取到 file.log 中
  2. 或者更好的是,仅在作业失败时才将内容放入 file.log (但这两者都很方便,因为当我在命令行中测试时我想知道发生了什么)
  3. 通过电子邮件向自己发送错误和/或其他内容

(最终这将以 cron 作业结束)。

答案1

使用时需要重定向stderr才能获取日志输出-v

你需要做类似的事情:

mysql -v mydb u- alex -p**** < please_run_me.sql 2>&1 > /tmp/file.log

重定向2>&1到,然后您重定向stderr到。请记住,这将覆盖-如果您想附加到它,请使用它。stdout/tmp/file.log>/tmp/file.log>>

相关内容