2010-12-30 10 views
1

Ich möchte Daten aus einer zweiten MySQL-Datenbank auswählen, um Daten von einem Server auf einen anderen zu migrieren.Wählen Sie aus dem zweiten MySQL Server

Ich bin für Syntax wie SELECT * FROM username suchen: [email protected]

Ist das möglich? Ich könnte dies in Microsoft SQL Server mit Verbindungsservern tun, also nehme ich an, dass es auch in MySQL möglich ist.

+0

Möchten Sie alle Daten oder nur eine Teilmenge migrieren? –

+0

Nein, ich glaube nicht, dass dies in mySQL möglich ist. [Here] (http://stackoverflow.com/questions/3008208/mysql-import-export) ist ein ähnlich einfacher Ansatz, erfordert aber Konsolenzugriff auf einem Computer und SSH-Zugriff auf dem anderen. –

+0

Ich möchte alle Daten migrieren, aber das Schema hat sich zwischen den beiden Servern geändert, also würde ich alles gerne in einer SELECT-Anweisung tun, wenn möglich – spaetzel

Antwort

3

Sie können eine Tabelle mit FEDERATED Speicher-Engine erstellen:

CREATE TABLE tableName (id INT NOT NULL, …) 
ENGINE=FEDERATED 
CONNECTION='mysql://username:[email protected]/databaseName/tableName' 

SELECT * 
FROM tableName 

Im Grunde ist es wie Blick auf den Remote-tableName dienen.

0

Generell gibt es zwei Ansätze, die Sie ergreifen können, obwohl keiner von ihnen klingen, was Sie nach:

  1. Verwenden replication und eine Master/Slave-Beziehung zwischen den beiden Datenbanken einzurichten.

  2. Einfach die Daten (mit der Befehlszeile mysqldump Werkzeug) aus der 1. Datenbank ausgeben und in die 2. Datenbank importieren.

jedoch beides letztlich alle Daten migrieren (d.h .: keine Teilmenge), obwohl Sie bestimmte Tabelle angeben können (s) über mysqldump. Wenn Sie den mysqldump-Ansatz verwenden und nicht InnoDB verwenden, müssen Sie außerdem sicherstellen, dass die Quellendatenbank nicht verwendet wird (d. H. Integrität aufweist), wenn der Speicherauszug erstellt wird.

0

Sie können dies nicht direkt tun, aber wie jemand anders in einem Kommentar erwähnt, können Sie mysqldump verwenden, um den Inhalt einer Tabelle als SQL-Skript zu exportieren.

An diesem Punkt können Sie das Skript auf dem neuen Server ausführen, um die Tabelle zu erstellen, oder wenn mehr Manipulation der Daten erforderlich ist, importieren Sie diese Daten in eine Tabelle mit einem anderen Namen auf dem neuen Server, und schreiben Sie eine Abfrage um die Daten von dort zu kopieren.