Posts Tagged ‘Mysql exportieren’

HowTo Mysql Datenbank sichern / wiederherstellen

Samstag, Februar 6th, 2010

Einleitung

Es ist sehr wichtig regelmässig Sicherungen der MySQL Datenbank zu machen. Viele erkennen dies erst wenn es zuspät ist.
Viele Web-Anwendungen benutzen MySQL um ihre Inhalte zu speichern wie z.B. Blogs oder Content-Management-Systeme. Wenn alle Dateien Ihres Contents auf ihrem Webserver aus reinen HTML-Seiten bestehen ist es sehr einfach diese zu sichern, da sie einfach per FTP von ihrem Webserver heruntergeladen werden und im Falle eines Datenverlustes einfach wieder hochgeladen werden. Bei einer Datenbank basierenden Webseite jedoch muß der gesamte Inhalt der MySql Datenbank gesichert werden. Falls man viel Mühe und Zeit in die Inhalte der Webseite gesteckt hat, wird man sehr frustriert sein, wenn im Falle eines Datenverlusts die Inhalte plötzlich weg sind. Ein monatliches Backup sorgt jedoch dafür das sowas nicht passiert und man so besser schlafen kann.
Eigentlich ist es ganz einfach und geht auch recht schnell:

Backup einer Mysql Datenbank mit phpMyAdmin

Im Weiteren gehe ich davon aus daß sie phpMyAdmin (eine webbasierende MySQL Administrationsoberfläche) auf Ihrem Webs

  • PhpMyAdmin öffnen
  • Im Menu auf “Export” klicken to um in den Backup Bereich ihrer MySql Datenbank zu gelangen
  • Stellen sie sicher das sie die gesamte Datenbank zum Exportieren selektiert haben und nicht nur eine Tabelle.

    Dabei
    sollten viele Namen in der Liste unterhalb des Datenbank Namens stehen.

  • SQL als Ausgabeformat auswählen
    • Häckchen bei “Structure”
    • Häckchen bei “Add AUTO_INCREMENT”
    • Häckchen bei “Enclose table and field name with backquotes”
    • Häckchen bei “DATA”
    • Häckchen bei “hexadecimal for binary field”.
    • Den Export Type auf “INSERT” setzen.
    • Häckchen bei “Save as file”,
      • Dateinamen nicht ändern
      • Häckchen bei “Compression” falls gewünscht.
  • Abschließend auf “GO” klicken und die Backup Datei downloaden.

Wiederherstellen einer MySql Datenbank aus einem Backup mit phpMyAdmin

  • Um eine Datenbank wiederherzustellen wird in phpMyAdmin auf “SQL” geklickt.
  • Auf der “SQL”-Seite
  • In das Verzeichnis klicken in dem das Backup ihrer Datenbank auf Ihrem PC liegt.
  • Start klicken.

Backup ohne phpMyAdmin

PhpMyAdmin hat ein Dateigrößen Limit, weswegen es unmöglich sein kann große Datenbanken damit zu sichern. Dafür müssen sie dann schon im Terminal ihres Webservers die Mysql Datenbank sichern.

Mysql Backup

Falls PHPMyAdmin mit großen Datenbanken nicht umgehen kann wird Ihnen dieser MySQL Befehls Code helfen:.

1. Wechseln sie in das Verzeichnis in dem sie die Sicherung anlegen möchten:

tax@linux:~> cd files/blog

2. Benutzen des Befehls mysqldump (man mysqldump zur Info):

tax@linux:~/files/blog> mysqldump --add-drop-table -h mysqlhostserver -u mysqlusername -p databasename (tablename tablename tablename) | bzip2 -c > blog.bak.sql.bz2 Enter password: (mysql password)

tax@linux~/files/blog>

Example:

mysqldump --add-drop-table -h db01.example.net -u dbocodex -p dbwp | bzip2 -c > blog.bak.sql.bz2 Enter password: my-password user@linux~/files/blog>

Der Befehl bzip2 -c nach der Pipe:| bewirkt das die Sicherung gleich anschließend gepackt wird.

Mysql Wiederherstellung

Der Wiederherstellungs Vorgang besteht aus:

  • Entpacken Ihres Datenbank Backups
  • Einspielen der Daten in die MySQL Datenbank

Angenommen ihre Sicherung ist eine .bz2 Datei wird folgender Befehl zum Wiederherstellen verwendet:

1. Entpacken der .bz2 Datei:

tax@linux:~/files/blog> bzip2 -d blog.bak.sql.bz2

Note: Falls Ihre Datenbank-Sicherung eine .tar.gz Datei war mit z.B. dem Namen blog.bak.sql.tar.gz

tax@linux:~tar zxvf blog.bak.sql.tar.gz

sollte dieser Befehl verwendet werden, anstatt des vorherigen.

2. Die Datenbank Sicherung wieder in die SQL Datenbank einspielen:

tax@linux:~/files/blog> mysql -h mysqlhostserver -u mysqlusername -p databasename < blog.bak.sql Enter password: (enter your mysql password)

tax@linux:~/files/blog>

Mysql Exportieren / Importieren

Sonntag, Januar 31st, 2010

MYSQL Datenbank exportieren / export MYSQL database

Es gibt 3 verbreitete Möglichkeiten um Datenbanken zu exportieren

Eine Datenbank / Single database

Export einer Datenbank sowie einer oder meherer Tabellen /
Export of one database and one or more tables
linux&gt; mysqldump database [tables] &gt; database.sql
mit Benutzer und Passwort/ using specified user and password
linux&gt; mysqldump database -u USER -p [tables] &gt; database.sql

Mehrere Datenbanken / Multiple databases

Export mehrere Datenbanken gleichzeitig /
Export of multiple databases at the same time
linux&gt; mysqldump –databases DB1 [DB2 DB3...] &gt; some_databases.sql
mit Benutzer und Passwort/ using specified user and password
linux&gt; mysqldump –databases DB1 [DB2 DB3...] -u USER -p &gt; some_databases.sql

Alle Datenbanken / All databases

Export aller vorhandenen Datenbanken gleichzeitig /
Export of all existing databases at the same time
linux&gt; mysqldump –all-databases &gt; all_databases.sql
mit Benutzer und Passwort/ using specified user and password
linux&gt; mysqldump –all-databases -u USER -p &gt; all_databases.sql

 

MYSQL Datenbank importieren / import MYSQL database

Wenn ein Dumpfile (sql-File) vorliegt ist der Datenimport denkbar einfach

2.1: Datenbank-Dump importieren / Import dump-file

Importieren eines Dump/ SQL-Files /
Import a dump- sql-file
linux&gt; mysql -p dbname &lt; dumpfile.sql
mit Benutzer und Passwort/ using specified user and password
linux&gt; mysql -p dbname -u USER -p &lt; dumpfile.sql

nach oben / up

MYSQL Backup Script für die Shell / Shell script for backup MYSQL database

Backup Script / backup script

#!/bin/sh
# Backup Script
# Author: Jerome Griessmeier
# Version: 0.2
#
# This Shell Script backup your database
# For automating use a cronjob

#
# Pfade setzen/ Setting path variables
#
MYSQL_DUMP=/usr/bin/mysqldump
BACKUP_DIR=/pfad/zu/backup_verzeichnis
TAR=/bin/tar
RM=/bin/rm
DB_NAME=DB_NAME
DB_USER=DB_USER
DB_PASS=DB_PASS
AKT_DATUM=`date +%Y%m%d%H%M`

#
# mysql dump erzeugen / create mysql dump
#
$MYSQL_DUMP $DB_NAME -u $DB_USER --password=$DB_PASS &gt;
$BACKUP_DIR/$AKT_DATUM.backup.sql

#
# mysql dump komprimieren / Compress data
#
cd $BACKUP_DIR
$TAR -cvzf $AKT_DATUM.backup.sql.tgz $AKT_DATUM.backup.sql

#
# aufraeumen / clean up
#
$RM $AKT_DATUM.backup.sql

nach oben / up

Script automatisieren / Automating the script

Das Script kann durch die Verwendung eines Cron-Jobs ganz einfach automatisiert werden

linux&gt; crontab -e

Start des Scripts um 02.55 jede Nacht / Starting the script at 2.55 am every night

55 2 * * * root /backup/backup.sh &gt;&gt; /dev/null 2&gt;&amp;1
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">
<table style="border: 1px solid blue; height: 100%;" border="0" width="700" bgcolor="#ffffff">
<tbody>
<tr>
<td>
<div><span style="font-family: Verdana,Arial,Helvetica,sans-serif; color: #999999;">
<h1>Mysql Exportieren / Importieren</h1>
</span></div></td>
</tr>
<tr>
<td><a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#1">1. MYSQL Datenbank exportieren / export MYSQL database</a>
<span style="padding: 0px 0px 0px 20px;"><a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#1-1">1.1 Eine Datenbank / Single database</a></span>
<span style="padding: 0px 0px 0px 20px;"><a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#1-2">1.2 Mehrere Datenbanken / Multiple databases</a></span>
<span style="padding: 0px 0px 0px 20px;"><a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#1-3">1.3 Alle Datenbanken / All databases</a></span>
<a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#2">2. MYSQL Datenbank importieren / import MYSQL database</a>
<span style="padding: 0px 0px 0px 20px;"><a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#2-1">2.1 Datenbank-Dump importieren / Import dump-file</a></span>
<a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#3">3. MYSQL Backup Script für die Shell / Shell script for backup MYSQL database</a>
<span style="padding: 0px 0px 0px 20px;"><a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#3-1">3.1 Backup Script / backup script</a></span>
<span style="padding: 0px 0px 0px 20px;"><a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#3-2">3.2 Script automatisieren / Automating the script</a></span></td>
</tr>
<tr>
<td><img src="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup-Dateien/mysql.jpg" alt="" width="106" height="75" /></td>
</tr>
<tr>
<td><span style="text-decoration: none; font-family: Verdana,Arial,Helvetica,sans-serif; color: #666666;">
<h3><a name="1">1. MYSQL Datenbank exportieren / export MYSQL database</a></h3>
</span>
<p style="padding-left: 30px;"><span style="text-decoration: none; font-family: Verdana,Arial,Helvetica,sans-serif; color: #666666;"> <span style="padding: 1px 0px 0px;"> Es gibt 3 verbreitete Möglichkeiten um Datenbanken zu exportieren /
There are three current ways for exporting one or more tables:</span></span></p>
<strong><a name="1-1">1.1: Eine Datenbank / Single database</a></strong>
<span style="padding: 1px 0px 0px;"> Export einer Datenbank sowie einer oder meherer Tabellen /
Export of one database and one or more tables</span>
<div style="border: 1px solid #cccccc; padding: 5px 0px 5px 30px;"><strong>linux&gt; mysqldump database [tables] &gt; database.sql</strong>
<small>mit Benutzer und Passwort/ using specified user and password</small>
<strong>linux&gt; mysqldump database -u USER -p [tables] &gt; database.sql</strong></div>
<strong><a name="1-2">1.2: Mehrere Datenbanken / Multiple databases</a></strong>
<span style="padding: 1px 0px 0px;"> Export mehrere Datenbanken gleichzeitig /
Export of multiple databases at the same time</span>
<div style="border: 1px solid #cccccc; padding: 5px 0px 5px 30px;"><strong>linux&gt; mysqldump --databases DB1 [DB2 DB3...] &gt; some_databases.sql</strong>
<small>mit Benutzer und Passwort/ using specified user and password</small>
<strong>linux&gt; mysqldump --databases DB1 [DB2 DB3...] -u USER -p &gt; some_databases.sql</strong></div>
<strong><a name="1-3">1.3: Alle Datenbanken / All databases</a></strong>
<span style="padding: 1px 0px 0px;"> Export aller vorhandenen Datenbanken gleichzeitig /
Export of all existing databases at the same time</span>
<div style="border: 1px solid #cccccc; padding: 5px 0px 5px 30px;"><strong>linux&gt; mysqldump --all-databases &gt; all_databases.sql</strong>
<small>mit Benutzer und Passwort/ using specified user and password</small>
<strong>linux&gt; mysqldump --all-databases -u USER -p &gt; all_databases.sql</strong></div>
<a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#anfang"><small>nach oben / up</small></a></td>
</tr>
<tr>
<td><span style="text-decoration: none; font-family: Verdana,Arial,Helvetica,sans-serif; color: #666666;">
<h3><a name="2">2. MYSQL Datenbank importieren / import MYSQL database</a></h3>
</span>
<p style="padding-left: 30px;"><span style="text-decoration: none; font-family: Verdana,Arial,Helvetica,sans-serif; color: #666666;"> <span style="padding: 1px 0px 0px;"> Wenn ein Dumpfile (sql-File) vorliegt ist der Datenimport denkbar einfach /
If you have a dumpfile of your database, the import is quite easy:</span></span></p>
<strong><a name="2-1">2.1: Datenbank-Dump importieren / Import dump-file</a></strong>
<span style="padding: 1px 0px 0px;"> Importieren eines Dump/ SQL-Files /
Import a dump- sql-file</span>
<div style="border: 1px solid #cccccc; padding: 5px 0px 5px 30px;"><strong>linux&gt; mysql -p dbname &lt; dumpfile.sql</strong>
<small>mit Benutzer und Passwort/ using specified user and password</small>
<strong>linux&gt; mysql -p dbname -u USER -p &lt; dumpfile.sql</strong></div>
<a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#anfang"><small>nach oben / up</small></a></td>
</tr>
<tr>
<td><span style="text-decoration: none; font-family: Verdana,Arial,Helvetica,sans-serif; color: #666666;">
<h3><a name="3">3. MYSQL Backup Script für die Shell / Shell script for backup MYSQL database</a></h3>
</span>
<p style="padding-left: 30px;"><span style="text-decoration: none; font-family: Verdana,Arial,Helvetica,sans-serif; color: #666666;"> <strong><a name="3-1">3.1: Backup Script / backup script</a></strong></span></p>
<span style="text-decoration: none; font-size: small; font-family: Verdana; color: #666666;"> #!/bin/sh
# Backup Script
# Author: Jerome Griessmeier
# Version: 0.2
#
# This Shell Script backup your database
# For automating use a cronjob</span>

#
# Pfade setzen/ Setting path variables
#
MYSQL_DUMP=/usr/bin/mysqldump
BACKUP_DIR=/pfad/zu/backup_verzeichnis
TAR=/bin/tar
RM=/bin/rm
DB_NAME=DB_NAME
DB_USER=DB_USER
DB_PASS=DB_PASS
AKT_DATUM=`date +%Y%m%d%H%M`

#
# mysql dump erzeugen / create mysql dump
#
$MYSQL_DUMP $DB_NAME -u $DB_USER --password=$DB_PASS &gt;
$BACKUP_DIR/$AKT_DATUM.backup.sql

#
# mysql dump komprimieren / Compress data
#
cd $BACKUP_DIR
$TAR -cvzf $AKT_DATUM.backup.sql.tgz $AKT_DATUM.backup.sql

#
# aufraeumen / clean up
#
$RM $AKT_DATUM.backup.sql

<a class="body" href="file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Eigene%20Dateien/mysql_backup.htm#anfang"><small>nach oben / up</small></a>
<p style="padding-left: 30px;"><span style="text-decoration: none; font-family: Verdana,Arial,Helvetica,sans-serif; color: #666666;"> <strong><a name="3-2">3.2: Script automatisieren / Automating the script</a></strong></span></p>
<span style="padding: 1px 0px 0px;"> Das Script kann durch die Verwendung eines Cron-Jobs ganz einfach automatisiert werden /
Using a cron-job the script can be automated very easy:</span>
<div style="border: 1px solid #cccccc; padding: 5px 0px 5px 30px;"><strong>linux&gt; crontab -e</strong>
<small>Start des Scripts um 02.55 jede Nacht / Starting the script at 2.55 am every night</small>
<strong>55 2 * * * root /backup/backup.sh &gt;&gt; /dev/null 2&gt;&amp;1</strong></div></td>
</tr>
</tbody>
</table>
</div>