2009-07-03 33 views
1

Ich habe die Sicherung der MySQL-Datenbank, aber wenn ich versuche, es wiederherzustellen meine gespeicherten Prozeduren werden nicht wiederhergestellt. Gibt es eine Art wie für die Sicherung verwenden wir --routines in mysqldump Befehl. Können wir so etwas in MySQL tun.Wie mysql Datenbank wiederherstellen

Wenn ich mysqldump bin dann wird es nur MySQL-Tabellen Dumping aber wenn ich mysql Befehl verwenden dann wiederherstellen es ist mir einen Fehler geben - ERROR 1064 (42000) in Zeile 3062: Sie haben einen Fehler in der SQL Syntax; Sie in der Bedienungsanleitung für die richtige Syntax zu Ihrem MySQL-Server-Version entspricht in der Nähe verwenden 'weiter verwenden BTREE ) ENGINE = MyISAM DEFAULT CHARSET = latin1' in Zeile 6.

Vielen Dank im Voraus

+1

Sollte dies auf ServerFault nicht gehen –

Antwort

2

Sie wiederherstellen 5.1 Backup bis 5.0 Instanz. müssen Sie 'BTWEI verwenden' aus Ihren Tabellendefinitionen entfernen, wenn Sie diesen Speicherauszug in 5.0 laden möchten.

+0

ich es auf 5.1 Beispiel bin wieder herstellt. –

+0

Es tut mir leid, dass ich bestätigt habe, dass ich 5.0 Instanz verwende, auf der ich die 5.1-Instanz wiederherstelle. Vielen Dank. –

3

Eine Lösung besteht darin, das Schema ohne die Daten auszugeben, eine Suche ersetzen für "BTREE verwenden", erstellen Sie die db, und laden Sie einen Dump ohne die Tabellendefinitionen.

Oder, auf einer un * x-Shell, und vorausgesetzt, Sie haben Perl zur Verfügung, kann dies direkt mit einem vollständigen Dump und Filterung der Datei an Ort und Stelle mit Perl (oder awk, sed, Ruby ...) als solche getan werden :

cat name-of-dump.sql | perl -pe 's/USING BTREE//' | mysql name_of_db 

oder wenn Sie zusammengedrückt Dump:

zcat name-of-dump.sql.gz | ... 
Verwandte Themen