Wie bewegen Sie mysql-Datenbank-am einfachsten & fastest way?
Hallo ich habe zum verschieben der mysql-Datenbank auf einem anderen server ,
Es ist fast 5 gb
kann ich root-Zugriff auf beiden Servern?
Ich glaube, Fragen wie diese gehören auf dba.stackexchange.com ich würde bewegen zu migrieren, aber ich habe nicht die Rep :p Oder vielleicht Superuser.com, aber ich würde vermuten, dass die früheren, da es eine bestimmte Datenbank.
InformationsquelleAutor user1031143 | 2012-02-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel führen Sie mysqldump zu erstellen Sie eine Datenbank kopieren und backups wie folgt:
Kopieren, db-name.aus Datei mit sftp/ssh auf entfernten MySQL-server:
Restore-Datenbank auf remote-server (login über ssh):
ODER
Wie kopiere ich eine MySQL Datenbank von einem computer/server auf einen anderen?
Kurze Antwort ist, können Sie das kopieren der Datenbank von einem computer/server auf einen anderen über ssh oder mysql-client.
Können Sie führen alle die oben genannten 3 Befehle in einem Durchgang mit mysqldump und mysql-Befehle (unsichere Methode nur verwenden, wenn Sie mittels VPN-oder trust-Netzwerk):
Verwenden Sie ssh wenn Sie keinen direkten Zugriff auf entfernten mysql-server (die sichere Methode):
ODER
Können Sie einfach kopieren Sie die Tabelle mit dem Namen foo, um die remote-Datenbank (und remote mysql server remote.box.com) namens " bar " mit der gleichen syntax:
ODER
Fast alle Befehle können ausgeführt werden, mithilfe von pipes unter UNIX - /Linux-Betriebssysteme.
Mehr von Referenz
Grüße,
*entnommen von hier: cyberciti.biz/tips/howto-copy-mysql-database-remote-server.html
InformationsquelleAutor Ahmed Ghoneim
Wenn Sie Root haben, kann es schneller zu vermeiden
mysqldump
. Können Sie erstellen, die DB auf dem Ziel-server, und kopieren Sie die Dateien direkt in der Datenbank. Vorausgesetztuser
hat Zugriff auf die Ziel-server mysql-Verzeichnis:Wichtige Dinge hier sind: Stoppen Sie mysqld auf beide Server vor dem kopieren der DB-Dateien, stellen Sie sicher, dass die Datei die Besitzrechte und Berechtigungen sind korrekt auf dem Ziel, bevor Sie starten mysqld auf dem Ziel-server.
Mit der Zeit wird Ihre Priorität hier ist die Verwendung der Kompression wird davon abhängen, ob die verlorene Zeit warten für Kompression/Dekompression (mit so etwas wie
gzip
) wird größer sein als die Zeit, die verschwendet übertragung unkomprimierter Daten, d.h. die Geschwindigkeit Ihrer Verbindung.Ich habe die oben genannten Schritte, aber ich bekomme "ERROR 1146 (42S02): Table 'Probe.user' existiert nicht", Wenn ich versuche, drucken Sie die user-Tabelle. Keine Ahnung ??
Ideen: Dateien für die user-Tabelle in falscher Pfad, falsche Datei-Berechtigungen, oder die Server unterschiedlich konfiguriert sind.
InformationsquelleAutor Umbrella
Für einen automatisierten Weg, um ein backup Ihrer MySQL-Datenbank:
Den Voraussetzungen zu tun, irgendeine form von backup zu finden, ist die ideale Tageszeit, um die Aufgabe abzuschließen, ohne zu behindern die Leistung von Systemen oder stören Benutzer. Auf, dass beachten Sie, dass die Größe der Datenbank berücksichtigt werden müssen zusammen mit der I/O-Geschwindigkeit der Antriebe wird zunehmend wichtig, da die Datenbank wächst ( ein weiterer Faktor, der mir einfällt, ist die Anzahl der Laufwerke, als mit einem alternativen Laufwerk, auf dem sich die Datenbank nicht gespeichert würden, erhöhen Sie die Geschwindigkeit aufgrund der Köpfe nicht auf der Bühne sowohl liest und schreibt.) Für den Willen halten Sie diese lesbar, ich nehme an, die Datenbank ist eine überschaubare Größe ( 100MB ) und das Arbeitsumfeld ist ein 9am-5pm job ohne wirklichen stress oder anderen Systemen auf off Stunden.
Der erste Schritt wäre, sich bei Ihrem lokalen Computer mit root-rechten. Einmal in die root-shell, einen MySQL-Benutzer müssen angelegt werden, mit nur-lese-Berechtigungen. Um dies zu tun, geben Sie die MySQL-shell mit dem Befehl:
Nächsten, ein Benutzer erstellt werden müssen, die mit nur-Lesen-Berechtigungen für die Datenbank, die gesichert werden muss. In diesem Fall, eine bestimmte Datenbank muss nicht zugewiesen werden, um einen Benutzer in dem Fall das Skript oder Prozess verwendet werden würden, zu einem späteren Zeitpunkt. So erstellen Sie einen Benutzer mit vollen lese-Privilegien, geben Sie diese Befehle in der MySQL-shell:
Mit den MySQL-user angelegt, es ist sicher zu beenden der MySQL-shell und fallen zurück in die root-shell mit exit. Von hier aus werden wir brauchen, um das Skript zu erstellen, die wir wollen, um unsere backup-Befehle, dies geschieht einfach mit der BASH. Dieses Skript kann überall gespeichert werden, da wir dann über einen cron-job, der das Skript ausführen abendlichen, aus Gründen der diesem Beispiel werden wir das Skript in ein neues Verzeichnis, das wir erstellen, genannt "backupscripts." , Dieses Verzeichnis zu erstellen, verwenden Sie diesen Befehl an der root-shell:
Brauchen wir auch, ein Verzeichnis zu erstellen, um unsere backups speichern lokal. Wir benennen Sie dieses Verzeichnis "backuplogs." Geben Sie diesen Befehl an der root-shell, um das Verzeichnis zu erstellen:
Der nächste Schritt wäre, um sich in die remote-Maschine mit root-Anmeldeinformationen ein, und erstellen Sie eine "backup-user" mit dem Befehl:
Erstellen Sie ein Verzeichnis für Ihre backups:
Bevor Sie sich Abmelden, packen Sie die IP-Adresse des remote-host für zukünftige Referenz mit dem Befehl:
eth0 ist die standard-Schnittstelle für eine kabelgebundene Netzwerk-Verbindung. Hinweis: diese IP_ADDR.
Schließlich, sich aus dem remote-server, und kehren Sie zu Ihrem ursprünglichen Wirt.
Nächstes erstellen wir die Datei, die unser Skript auf unserem lokalen host Maschine, nicht auf der Fernbedienung. Wir werden den VIM (nicht halten es gegen mich, wenn du einen nano oder emacs-fan - aber ich werde nicht auf die Liste, wie Sie VIM benutzen, um eine Datei Bearbeiten hier) erstellen Sie zuerst die Datei, und verwenden mysqldump, ein backup Ihrer Datenbank. Wir werden auch mit scp auf, Nachdem die Datenbank erstellt wurde, komprimieren Sie Ihre Datei für die Lagerung. Lesen Sie die Datei auf STDOUT zu erfüllen, den Anweisungen. Prüfen Sie schließlich, ob Dateien, die älter als 7 Tage alt sind. Entfernen Sie Sie. Um dies zu tun, wird das Skript wie folgt Aussehen:
Mit diesem Skript werden wir brauchen, um setup-ssh-Schlüssel, so dass wir nicht aufgefordert, ein Kennwort jedes mal, wenn das Skript ausgeführt wird. Wir tun dies mit SSH-keygen und dem Befehl:
Geben Sie ein Kennwort an der Eingabeaufforderung - diese stellt Ihre privaten Schlüssel. Nicht teilen diese.
Die Datei, die Sie teilen müssen, ist Ihr öffentlicher Schlüssel gespeichert ist in der Datei current_home/.ssh/id_rsa.pub. Der nächste Schritt ist die übertragung dieser öffentlichen Schlüssel, um Ihre remote-host . Den Schlüssel zu bekommen, verwenden Sie den Befehl:
kopieren Sie die Zeichenfolge in der Datei. Neben ssh in einem remote-server mit dem Befehl:
Geben Sie Ihr Passwort ein und Bearbeiten Sie dann die Datei /.ssh/authorized_keys. Fügen Sie den string erhalten Sie von Ihrem id_rsa.pub-Datei in die Datei authorized_keys. Schreiben Sie die änderungen, um die Datei mit Ihrem editor und beenden Sie den editor. Melden Sie sich von Ihrem remote-server und testen Sie die RSA-Schlüssel gearbeitet haben, durch den Versuch, sich in die remote-server erneut, indem Sie mit dem vorherigen Befehl ssh. Wenn kein Passwort verlangt, ist es richtig funktioniert. Zum Abmelden vom remote-server wieder.
Die Letzte Sache, die wir tun müssen, ist erstellen Sie einen cron-job laufen jede Nacht, nachdem der Benutzer sich abgemeldet haben. Mit crontab, wir werden Bearbeiten Sie die aktuelle Benutzer-Datei (root), um zu vermeiden, alle Probleme mit Berechtigungen. *Hinweis - dies kann schwerwiegende Folgen haben, wenn es Fehler in Ihren Skripten einschließlich der Löschung von Daten, Sicherheitslücken, etc. - überprüfen Ihre Arbeit und stellen Sie sicher, Vertrauen Sie Ihrem eigenen system, wenn dies nicht möglich ist, dann eine Alternative Benutzer und Berechtigungen eingerichtet werden sollten, die auf dem aktuellen server *. Bearbeiten Sie Ihre aktuelle crontab werden wir den Befehl:
Während in den crontab-editor (es öffnet sich in Ihrem Standard-text-editor), wir werden unser script läuft jede Nacht um 12:30 Uhr. Geben Sie eine neue Zeile in den editor:
Diese Datei speichern und den editor beenden. Um Ihre cronjob korrekt ausgeführt, wir müssen neu starten, den crond-Dienst. Um dies zu tun, geben Sie den Befehl:
InformationsquelleAutor Linztm