Kann man in MySQL Tabellen kopieren?

stud3

Aktives Mitglied
hallo,
gibt es wie im MS SQL Server die Möglichkeit bei MySQL Tabellen einer bestimmten Datenbank in eine andere zu importieren bzw. zu kopieren (die zu importierenden Tabellen sind in einer MySQL Datenbank)? wenn ja, welche sind die Schritte?.
Ich würde gerne auch wissen, wie ich einzelne Tabellen (Inhalte davon) in einer DOS Konsole oder bei mir benutzten PUTTY Konsole besser anschauen kann. Ich greife auf einen entfernten Server durch das Putty zu, aber die Tabellen werden mir total schlecht angezeigt, wenn es um Tabellen mit vielen Spalten oder mit ganz großen Inhalten geht.
Ich habe mir eine MySQL Front installiert, um mir unter Windows die Tabellen zu visualisieren, aber dadurch dass die Verbindung zu dem entfernten Datenbankserver nicht klappt, kann ich mir dann die Tabellen nicht anschauen, das geht bei mir im Moment nur über das Putty.
Könnte mir jemand Tipps geben? Gruß.
 
Welche mittelstehen Dir zur Verfügung und um welche Storage-Engine (Tabellentypen) handelt es sich dabei?

Im allgemeinen kann man mit phpmyadmin die Daten Importieren und Exportieren. Aber auch mysqldump über die Kommandoziele kann dies erledigen. Möglichkeiten gibt es relative viele, MyISAM Tabellen können einfach kopiert werden, solange der entsprechende MySQL-Dienst gestoppt wurde. Für InnoDB gibt es ein sehr gutes kostenpflichtiges Tool...



MfG Sascha Ahlers
 
hallo, danke für die Antwort. Ich habe XAMPP, MySQL Front, Putty, gerade habe ich ein NaviCat installiert, der auf entfernten Datenbankserver zugreifen sollte. Welche Datentypen? leider kann ich die Datentypen der Spalten bei der Putty Konsole nicht anschauen. Putty ist der einzige von den oben bereits genannten Mitteln, mit dem ich die Tabellen des entfernten Servers anschauen kann, aber sehr schlecht. Es ist nicht übersichtlich was auf der Konsole angezeigt wird.
Mit MySQL Front habe ich versucht, auf die Datenbanken des entfernten Servers zuzugreifen ohne Erfolg, das gleiche mit NaviCat.
Jetzt möchte ich lokal arbeiten und Datenbanken und dazugehörige Tabellen von einem entfernten Server zu meinem lokalen Datenbankserver kopieren bzw. importieren. Aber ich weiss nicht wie es geht.

Für jede Hilfe wäre ich dankbar. Ich mache ja viel Mühe diese Beiträge deutlich zu schreiben...
 
Hast Du denn ein php auf dem Server? Dann wäre es wohl einfacher Dir fix ein phpmyadmin zu installieren, denn dort hast Du ein sehr angenehmes GUI.

PS: f5 ;-) Ich empfehlen wirklich phpmyadmin, schnell und einfach zu installieren und per Browser ist kopieren nur ein paar Klicks.
 
sorry Alein, aber deine Antwort hilft mir nicht viel (nichts Böses gemeint). Ich habe schon phpMyAdmin, aber ich weiss nicht wie kann man Tabellen von einem entfernten Server durch phpmyAdmin anschauen...Kicks sind nicht genug für mich, irgendwelche Details wie man das macht? Details würden mir helfen...
 
es ist mir etwas eingefallen. Man kann vielleicht versuchen eine Netzverbindung mit dem entfernten Server zu erstellen, dann irgendwo auf diesem Server sollte ein mysql Verzeichnis, und unter diesem ein Data Verzeichnis vorhanden sein, so dass ich die darin enthaltenen Tabellen in meinen lokalen mysql/Data kopieren kann. Sowas wäre einfacher, aber sowas machbar ist?....
 
Nochmal, etwas verständlicher: Welchen Zugriff hast Du auf den Server?
Du scheint auf jedenfall einen Benutzer zu haben, welcher sich per SSH auf den Server anmelden kann.
Hast Du auch Root-Rechte, oder wie es in der Windows-Welt heißt Administratorrechte?
Wenn Du die Frage mit "Ja" beantworten kannst, dann kannst Du Dir doch auch PhpMyAdmin direkt auf den Server installieren...



MfG Sascha Ahlers
 
QUOTE PhpMyAdmin direkt auf den Server installieren...

z.B: unter phpmyadmin im document root. Dann kannst Du ganz einfach per www.domain.tld/phpmyadmin einloggen (umbedingt passwortschützen), und den entfernten Mysqlserver per Browser administrieren.
 
ja, ich habe Administratorrechte und ich benutze SSH. PHPMyAdmin habe ich auf meinem lokalen Server. Sorry, ich komme nicht voran....
Ich versuche alles Mögliche, aber ich komme nicht voran...
Ich will einfach von einem entfrenten Server alle Datenbanken mit Tabellen in meinem lokalen Datenbankserver kopieren...
 
Dann nutze doch einfach mysqldump um die Daten zu exportieren und lädst Du Dir diese Datei herunter um diese wieder mit mysqldump zu imporieren.
Das funktioniert ohne zusätzliche Hilfsmittel und mysqldump müsste auf den Server schon vorhanden sein, da es zu dem MySQL-Paket gehört. Auch muss man sich dabei keine großen Gedanken um irgendwelche Storage-Engines machen.

Naturlich könntest Du auch PhpMyAdmin benutzen und die TimeOut- und Memory-Begrenzung nur für dieses Script abschalten, um das ganze über eine Web-GUI zu machen.


In der Tabelle "mysql" stehen die Account Daten drin, die wird also nicht unbedingt benötigt und sollte auch nur bei gleichen MySQL-Versionen mit übertragen.


MfG Sascha Ahlers
 
QUOTE Dann nutze doch einfach mysqldump um die Daten zu exportieren und lädst Du Dir diese Datei herunter um diese wieder mit mysqldump zu imporieren.


das versuche ich schon längst, ich kriege bald die Krise. Ich such eper google ein Beispiel über das Kommando mysqldump, ich finde nur die Syntax aber kein konkretes Beispiel. Wie würde dann das Kommando lauten, damit ich alle databases des entfernten Servers in das lokale kopiere? Bitte um Geduld, weil ich Anfänger in MySQL bin. Bitte auch um etwas mehr Details, welche Schritte sollte ich folgen.
Wie meinst du mit "lädst du dir diese Datei herunter um diese wieder mit mysqldump zu importieren"?...
 
CODE mysqldump -p[ROOT-MYSQL-PW] --all-databases > sql.sql

und dann lädst du es in ein Verzeichnis, das im Internet verfügbar ist.
Danach saugst du es auf die lokale Maschine.
 
sorry aber es ist immer noch nicht klar.

Warum die letzten Teile hinter dem '>':

QUOTE sql.sql
tar cfz sql.tar.gz sql.sql


ich verstehe das nicht. Wozu diese .sql Datei?


QUOTE und dann lädst du es in ein Verzeichnis, das im Internet verfügbar ist.
Danach saugst du es auf die lokale Maschine.


wie im Internet? ...



 
das ">" bedeutet "Schreibe die Ausgabe in eine Datei"... das "tar" kannst du auch weglassen.
Es gibt viele Wege auf deine Maschine...
a) Du hast Apache laufen: Dann kopierst du es in ein Verzeichnis, dass du mit dem Browser aufrufen kannst.
b) Via FTP mit wget bzw. wput
c) Streamen
wink.gif

d) ...
 
danke für die Antwort.

ich habe deine Kommandozeile benutzt, aber es wird mir die Tabellenstruktur und viele inserts der Tabellen der Datenbanken auf der Konsole angezeigt. Das ist nicht was ich möchte.
Geht es nicht, so dass man manuell die Datenbanken des entfernten Servers auf den lokalen kopiert werden können?

Den ganzen Tag sitze ich hier nur deswegen, aber ich komme nicht voran. Ich hasse MySQL...
 
Hm... Unter Linux verhindert das eben das "> sql.sql"... Damit wird die Ausgabe in diese Datei geschrieben. Wies bei Windows ist, weiss ich nicht.
 
Klar, du kannst einfach die Tabellen aus den MySQL-Verzeichnis kopieren, voraussetzung ist nur, dass es nur MyISAM-Tabellen sind und der MySQL-Dienst vorher gestoppt wird.


QUOTE (Nils Caspar @ Fr 12.5.2006, 18:05)Hm... Unter Linux verhindert das eben das "> sql.sql"... Damit wird die Ausgabe in diese Datei geschrieben. Wies bei Windows ist, weiss ich nicht.

Diese Funktion ist mit der Windows Kommandozeile identisch...
"> sql.sql" Speichere die Ausgabe in die Datei, entferne jedoch vorher deren Inhalt
">> sql.sql" Hänge die Ausgabe ans Ende der Datei heran



MfG Sascha Ahlers
 
hallo Jungs, in der Zwischenzeit habe ich ein Buch gelesen, wo das Kommando mysqldump erläutert wird. Den Sinn dieser ganzen Geschichte habe ich endlich verstanden.
Auf jeden Fall habe ich Zugriff auf die Datenbanken des entfernten Datenbankservers nur über die Putty Konsole. Ich greife auf einem Linux Server zu. Ich selber benutze aber Windows.
Wenn ich jetzt eine .sql Datei beispiesweise in dem Verzeichnis /bin des entfernten Servers anlege, wie würde die Kommandozeile lauten? etwa so?

QUOTE mysqldump datenbankname > Datei.sql /bin


Nachdem alle Inserts und Creates der datenbanken des entferntes Servers in der .sql Datei gesichert, abgelegt sind, würde ich mit WinSCP die .sql Datei irgendwo in ein Verzeichnis meines lokalen Servers kopieren.
Bitte um Korrektur, falls bessere Ideen vorzuschlagen sind. Gruß.
 
Nein, es würde so lauten:
CODE mysqldump datenbankname > /bin/Datei.sql


Ansonsten hört es sich soweit richtig an.


Nebenbei könntest Du natürlich auch MySQL nach außen hin freigeben... würde ich aber eher sein lassen, wenn es nicht unbedingt benötigt wird, wie z. B. bei einer Replikation.



MfG Sascha Ahlers
 
Zurück
Oben