Heim > Backend-Entwicklung > PHP-Tutorial > Beispiel dafür, wie Shell jeden Tag automatisch eine MySQL-Datenbank sichert

Beispiel dafür, wie Shell jeden Tag automatisch eine MySQL-Datenbank sichert

小云云
Freigeben: 2023-03-21 11:12:02
Original
2058 Leute haben es durchsucht

Dieser Artikel zeigt Ihnen hauptsächlich Beispiele dafür, wie Shell jeden Tag automatisch eine MySQL-Datenbank sichert.

Empfohlene verwandte MySQL-Video-Tutorials: „MySQL-Tutorial

1. MySQL bietet ein praktisches MySQL-Dump-Tool und Datenbankinformationen importieren;

2. Verwenden Sie die Befehlszeilen-Shell, um die Ausführung von mysqldump zu testen, die erforderlichen Parameter zu verstehen und zu prüfen, ob die generierte SQL-Sicherungsdatei die Anforderungen erfüllt; > Hinweise:

1. Execute /usr/bin/mysqldump;
/usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql
Nach dem Login kopieren
2. Im Allgemeinen suchen Sie selbst nach der spezifischen Bedeutung von

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

1. Geben Sie das Skriptdateiverzeichnis chmod +x sqlAutoBak ein. sh, um die Ausführungsberechtigung hinzuzufügen, andernfalls wird ein Fehler „Berechtigung verweigert“

gemeldet. 2. ./sqlAutoBak.sh, wenn die hochgeladene Datei in Windows geschrieben ist, wird möglicherweise ein Fehler gemeldet

#!/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 文件即可恢复数据
Nach dem Login kopieren

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
Nach dem Login kopieren

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.


6. Richten Sie geplante Linux-Aufgaben ein, um das Skript auszuführen.
#!/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 文件即可恢复数据
Nach dem Login kopieren

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
Nach dem Login kopieren

Verwandte Empfehlungen:
00 05 *   * * /bin/sh /usr/local/apache/htdocs/timepusher/sqlBak/sqlAutoBak.sh#每天早上 5:00am 执行
Nach dem Login kopieren

3 Schritte, um Ihnen beizubringen, wie Sie automatisch eine MySQL-Datenbank mit einem Klick sichern_MySQL
crontab -l
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage