Seite 1 von 1

mySQL Datenbank "sichern" bzw "transferieren&

Verfasst: 07.10.2004 12:26
von SirCus
folgendes Problem
in Meinem mySQL Büchlein stehen ein paar Kommandos um eine Datenbank in mySQL mittels PERL scripten zu sichern und wiederherzustellen.

aber erstens hab ichmich mit PERL noch nich befasst,
zweitens .. gibts ne Möglichkeit das auch ohne PERL zu machen?

Also Tabelle anlegen, Formate für Spalten etc. ihr wisst schon :)

Verfasst: 07.10.2004 12:30
von freedimension
wenn's für's web ist, schau dir mal phpMyAdmin an. Ist eine recht umfangreiche Weboberfläche für MySQL-Datenbanken

Verfasst: 07.10.2004 12:35
von Max.
Das einfachste ist es, den MySQL Dienst vor der Sicherung zu beenden, dann das Verzeichnis "DB-Name" (alle DB relevanten Dateien sind dort) kopieren und anschliessend wieder den Server hochfahren.

Habe ich mehrfach unter MySQL/Linux praktiziert.

Alternativ gibt es die Möglichkeit eines "SELECT ... INTO OUTFILE", das die Daten in einem Textfile ablegt. Mal die Doku angucken, da gibt es viele Parameter.

Verfasst: 10.10.2004 13:57
von SirCus
php admin habe ich nicht, es geht mir tatsächlich um die Möglichkeit die Datenbankstruktur über die Kommandozeile zu sichern.

@Max
wenn ich das verzeichnis "DB-Name" sichere, erkennt ein zweiter mySQL server diese neue Datenbank auch an?

Ich habe eben eine funktion mysql dump gefunden, werde mir die mal angucken.

Im Grunde suche ich 2 Funktionen:
1. lediglich die Datenbank struktur ohne Ihnhalte sichern
2. die Inhalte sichern.
Ich denke das Kopieren des Verzeichnisses sowie mysqldump sichern jeweils die Datenbankstruktur UND den inhalt.

Verfasst: 11.10.2004 00:18
von Max.
SirCus hat geschrieben:@Max
wenn ich das verzeichnis "DB-Name" sichere, erkennt ein zweiter mySQL server diese neue Datenbank auch an?
Macht er (ist allerdings sicher hilfreich, wenn beide MySQL Server die gleiche Version haben).

Versuch es einfach mal; erstelle ein neues Verzeichnis (normalerweise unterhalb von /var/lib/mysql und kopiere den Inhalt eines anderen DB Verzeichnisses da rein. Wenn die Berechtigungen passen, dann solltest Du sofort mit der "neuen" DB arbeiten können.

Um mit mysqldump nur die Struktur zu bekommen, ruf es so auf:

Code: Alles auswählen

mysqldump -u user -p --no-data Datenbank-Name > Datei
Es gibt auch noch jede Menge "SHOW" Kommandos;

z.B.

Code: Alles auswählen

 SHOW CREATE TABLE tables_priv;
angewendet auf die DB mysql ergibt:

Code: Alles auswählen

CREATE TABLE `tables_priv` (
  `Host` char(60) binary NOT NULL default '',
  `Db` char(64) binary NOT NULL default '',
  `User` char(16) binary NOT NULL default '',
  `Table_name` char(60) binary NOT NULL default '',
  `Grantor` char(77) NOT NULL default '',
  `Timestamp` timestamp(14) NOT NULL,
  `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') NOT NULL default '',
  `Column_priv` set('Select','Insert','Update','References') NOT NULL default '',
  PRIMARY KEY  (`Host`,`Db`,`User`,`Table_name`),
  KEY `Grantor` (`Grantor`)
) TYPE=MyISAM COMMENT='Table privileges'
also den SQL Befehl um eine Tabelle mit derselben Struktur zu erstellen.

Verfasst: 11.10.2004 08:06
von SirCus
jupp, geht alles :)
vielen Dank