Fehler beim Speichern des SQL-Dumps in einer Datei

Fehler beim Speichern des SQL-Dumps in einer Datei

Ich möchte errorbei einem Fehler in einer Datei speichern. Der Fehler führt jedoch nicht zur Weiterleitung in die Datei.

Ich erhalte den folgenden Fehler und es erfolgt keine Weiterleitung in die Datei.

mysqldump: Couldn't execute 'SHOW FIELDS FROM `v_comloc`': View 'nextgendev_new.v_comloc' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)

Mein Versuch

HOST="localhost"
PASS="aaaaa"
LOCAL_DIR="/userBackupDrive/backupDatabases/"           #Modified local directory
DAY="`date +%a`"
DATE="`date +%F`"
USER="root"

for db in `mysql -h $HOST -u $USER -p$PASS -e "show databases"`
     do
         mysqldump --opt --routines --single-transaction -p$PASS -u $USER -h $HOST --databases $db | gzip -9 > $LOCAL_DIR$db.$DAY.sql.gz  2>>/var/log/failedJobs/mysqlCronJob.log  

                RESULT=$?
                if [ $RESULT -eq 0 ] ; then
                        echo
                else
                        echo "$DATE__  $db backup not successful" >> /var/log/failedJobs/dbError.log

                fi
     done

Antwort1

Sie haben Fehler von umgeleitet gzip, nicht von mysqldupmp.

Setzen Sie die Umleitung vor die Pipe, etwa so:

mysqldump --opt --routines --single-transaction -p$PASS -u $USER -h $HOST \
          --databases $db 2>>/var/log/failedJobs/mysqlCronJob.log \
         | gzip -9 > $LOCAL_DIR$db.$DAY.sql.gz

Antwort2

Sie versuchen anscheinend, die Standardausgabe („>“) zweimal umzuleiten, was nicht funktioniert.

Vielleicht möchten Sie dies:

     mysqldump --opt --routines --single-transaction -p$PASS -u $USER -h $HOST --databases $db 2>/var/log/failedJobs/mysqlCronJob.log | gzip -9 > $LOCAL_DIR$db.$DAY.sql.gz 

verwandte Informationen