mysqldump 停止,没有任何错误

mysqldump 停止,没有任何错误

使用 mysqldump 的 .sh 脚本备份 30 个数据库。27 个数据库备份成功,并且每天的大小相同,但 3 个数据库没有成功,并且似乎在转储过程中随机停止,没有任何错误。

以下是脚本

#!/bin/bash

appname=myapp

dbname=mydb

dbuser=myuser

dbpass=mypass

datestamp=`date +%d%m%y`

rm -f /var/backups/* > /dev/null 2>&1
mysqldump -u$dbuser -p$dbpass $dbname > /var/backups/$dbname-$datestamp.sql && gzip /var/backups/$dbname-$datestamp.sql

tar -zcf /var/backups/data-$datestamp.tar.gz /var/www/data > /dev/null 2>&1

tar -zcf /var/myapp-backups/myapp-$datestamp.tar.gz /var/www/myapp > /dev/null 2>&1

我已经使用 Mysqlcheck 检查了失败的数据库,一切似乎都很好,所以现在我不确定在哪里查找错误

var/log/mysql 没有错误,今天 06:32 写入了一个 error.log,这大约是 cron 运行的正确时间,但它是空的

有任何想法吗?谢谢

答案1

要在转储时获取错误日志,请添加 -v 和 2> log.txt:

mysqldump -v -u -p 数据库名称 > databasesqlfile.sql 2> log.txt

您还可以在 mysql 配置中启用详细日志记录,并在转储时遇到错误时检查这些日志。启动 mysql 并运行:

显示类似“%log%”的变量;

另外,在配置文件中,启用以下日志:

[mysqld]

日志箱

日志

日志错误

记录慢速查询

并重新启动 mysql 以应用更改。

答案2

您可能需要捕获 mysqldump 的 stderr

mysqldump ... 2>/var/log/mysqldump.err

相关内容