Empfohlene verwandte MySQL-Video-Tutorials: „MySQL-Tutorial “
/usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql
3 in der Shell Generieren Sie das aktuelle Datum in einem Format wie 2015-11-05, sodass der bei erfolgreichem Export generierte Dateiname db_2015-11-05.sql lautet. 5. Laden Sie die generierte SQL-Datei herunter und öffnen Sie sie mit a Texteditor zur Überprüfung und lokal zum Testen der Datenbank importieren, um festzustellen, ob es Probleme gibt;
3. Organisieren und schreiben Sie flexiblere Shell-Skripte für eine einfache Wiederverwendung eine Datei oder laden Sie sie nach /usr/local/apache/htdocs/timepusher/sqlBak/sqlAutoBak.sh hoch
4. Testen Sie das Shell-Skript
#!/bin/sh# Database infoDB_USER="batsing"DB_PASS="batsingpw"DB_HOST="localhost"DB_NAME="timepusher"# Others varsBIN_DIR="/usr/bin" #the mysql bin pathBCK_DIR="/mnt/mysqlBackup" #the backup file directoryDATE=`date +%F` # TODO# /usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.sql#还原数据库#用mysql-front导入前一天的 *.sql 文件即可恢复数据
Dies ist verursacht durch unterschiedliche Systemkodierungsformate: In Windows-Systemen bearbeitete .sh-Dateien können unsichtbare Zeichen sein, daher wird die obige Ausnahmemeldung gemeldet, wenn sie unter Linux-Systemen ausgeführt wird. Sie können Notepad++ unter Windows verwenden, um in das Unix-Format zu konvertieren (wählen Sie im Menü: Bearbeiten > Dateiformatkonvertierung > In UNIX konvertieren)
3. Nach der Änderung laden Sie ./sqlAutoBak.sh hoch und führen die Ausführung fort. Es wird kein Fehler gemeldet. Überprüfen Sie die exportierte SQL-Datei erneut. 5. MySQL-Sicherungsdaten komprimieren
1. Überprüfen Sie die exportierte SQL-Datei und stellen Sie fest, dass ihre Dateigröße auch Parametereinstellungen zum Generieren von gzip-komprimierten Dateien bietet. sqlAutoBak.sh wird wie folgt geändert
/bin/sh^M: bad interpreter: No such file or directory
3. Laden Sie nach der Änderung die Ausführung hoch und fahren Sie mit der Ausführung fort./sqlAutoBak.sh wird kein Fehler gemeldet. Wenn Sie einen Texteditor verwenden, um die exportierte *.sql.gz-Datei anzuzeigen, sollte sie aus einer Reihe verstümmelter Zeichen bestehen.
4. Laden Sie es lokal herunter und öffnen Sie es mit einer Dekomprimierungssoftware. Nach der Dekomprimierung können Sie die echte *.sql-Datei darin sehen.
#!/bin/sh# Database infoDB_USER="batsing"DB_PASS="batsingpw"DB_HOST="localhost"DB_NAME="timepusher"# Others varsBIN_DIR="/usr/bin" #the mysql bin pathBCK_DIR="/mnt/mysqlBackup" #the backup file directoryDATE=`date +%F` # TODO# /usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql# $BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.sql$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME | gzip > $BCK_DIR/db_$DATE.sql.gz# 还原数据库# 把 *.sql.gz 使用gunzip 或 本地的解压软件 解压为 *.sql 文件# 用mysql-front导入前一天的 *.sql 文件即可恢复数据
Bearbeiten Sie die geplante Aufgabenliste 🎜>2 , fügen Sie die folgende Zeile ein, da die Website normalerweise um 5 Uhr den geringsten Verkehr hat.
3. Überprüfen Sie, ob die Aufgabe erfolgreich erstellt wurde
7. Überprüfen Sie am nächsten Tag, ob die automatisch generierte SQL-Datei die Anforderungen erfüllt Die generierte Datei ist Wenn Sie sie entpacken und prüfen, ob kein Problem vorliegt, ist das Skript für die automatische geplante Datenbanksicherung abgeschlossen. Da zu viele generierte Dateien eine gewisse Menge an Speicherplatz beanspruchen, wird empfohlen, die Dateien regelmäßig (z. B. einmal im Monat) zu bereinigen. $, ergänzend 1 Wenn dem Benutzer der Datenbank nicht die Berechtigung zum Sperren von Tabellen zugewiesen ist, meldet das Backup einen Fehler bei der Verwendung von LOCK TABLES. Das liegt daran, dass der Befehl mysqldump die Tabelle beim Exportieren standardmäßig sperrt, sodass es zwei Lösungen gibt. Eine besteht darin, dem Benutzer die Berechtigung zum Öffnen der Sperrtabelle zu erteilen. Die andere besteht darin, dem Befehl den Parameter --skip-lock-tables hinzuzufügen. Das heißt:crontab -e
00 05 * * * /bin/sh /usr/local/apache/htdocs/timepusher/sqlBak/sqlAutoBak.sh#每天早上 5:00am 执行
crontab -l
Skriptcode für die automatische Sicherung der MySQL-Datenbank unter Linux_MySQL
Verwenden Sie die Shell, um die MySQL-Datenbank regelmäßig automatisch zu sichern_MySQL
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME --skip-lock-tables| gzip > $BCK_DIR/db_$DATE.sql.gz
Das obige ist der detaillierte Inhalt vonBeispiel dafür, wie Shell jeden Tag automatisch eine MySQL-Datenbank sichert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!