Seite 1 von 1

Tabellen kopieren nach MySQL

Verfasst: Di, 12.02.2013 15:06
von zachy
OpenOffice-Version: OpenOffice.org 3.4.1
Betriebssystem: Windows 7 Prof 64 Bit
Quelldatenbank: HSQLDB
Zieldatenbank: MySQL 5.5

Hallo Community,

derzeit ziehe ich von der mitgelieferten HSQLDB auf eine MySQL-Datenbank um. Beide Datenbanken sind mit OOo Base verbunden. Beide Datenbanken und auch OOo Base liegen auf demselben Rechner.

Meine Idee war, die Tabellen über die Base-GUI einfach aus der HSQLDB zu kopieren und in die MySQL-Datenbank einzufügen. Das klappt auch soweit (es erscheint der "Tabelle kopieren"-Dialog in welchem ich Definition und Daten auswähle und die zu kopierenden Spalte und Datentypen festlege). Nur dann bricht der Vorgang mit der folgenden Fehlemeldung ab:
Unknown database 'root@localhost'
Daraus werde ich leider nicht schlau.

Meine Lösung sieht im Moment so aus:
Ich lege die Tabellendefinition von Hand in MySQL an. Dann kopieren ich die Quelltabellen nach Calc, mache eine CSV-Datei daraus und importiere die Daten über den MySQL-Befehel LOAD DATA INFILE in die angelegt Zieltabelle.
Das funktioniert zwar, ist aber sehr mühsam und sicher nicht der Königsweg.

Hat jemand eine bessere Idee?

Re: Tabellen kopieren nach MySQL

Verfasst: Di, 12.02.2013 16:51
von RobertG
Hallo zachy,

zuerst einmal hat mir die Meldung einen Schock versetzt: "root@localhost" bedeutet ja das Anmelden als Systemadministrator an der MySQL-Datenbank. Bei mir kommt da ein Datenbankbenutzername @localhost raus.

Dann habe ich das mit den direkten Treibern getestet. Da entsteht diese Meldung, egal, welchen Treiber ich nehme. Wenn Du den Weg über JDBC oder ODBC nimmst, dann kannst Du die Tabellen ganz normal einfügen.

Noch ein bisschen weiter getestet: Der direkte Treiber hat erst einmal nur Kontakt zu MySQL, aber nicht zu einer Datenbank. Selbst das Anfügen von Daten in einer Tabelle klappt nicht so einfach. Also ein bisschen überlegt und weiter gesucht.
Angenommen, Deine Tabelle heißt "Personen" und Deine Datenbank heißt "Adressen", dann schlägt der Assistent den Tabellennamen "Personen" vor. Hier musst Du tunlichst ergänzen: "Adressen.Personen" - also Datenbankname.Tabellenname. Dann klappt auch mit dem direkten Treiber der Import.

Gruß

Robert

Re: Tabellen kopieren nach MySQL

Verfasst: Di, 12.02.2013 21:32
von zachy
RobertG hat geschrieben:Hallo zachy,

zuerst einmal hat mir die Meldung einen Schock versetzt: "root@localhost" bedeutet ja das Anmelden als Systemadministrator an der MySQL-Datenbank. Bei mir kommt da ein Datenbankbenutzername @localhost raus.

[...]
Noch ein bisschen weiter getestet: Der direkte Treiber hat erst einmal nur Kontakt zu MySQL, aber nicht zu einer Datenbank. Selbst das Anfügen von Daten in einer Tabelle klappt nicht so einfach. Also ein bisschen überlegt und weiter gesucht.
Angenommen, Deine Tabelle heißt "Personen" und Deine Datenbank heißt "Adressen", dann schlägt der Assistent den Tabellennamen "Personen" vor. Hier musst Du tunlichst ergänzen: "Adressen.Personen" - also Datenbankname.Tabellenname. Dann klappt auch mit dem direkten Treiber der Import.
Hallo Robert,

die Daten exportiere ich in ein Demo-System. Deshalb der Root-User. In der Produktivphase werde ich natürlich einen normalen Datenbankbenutzer verwenden. :D

Mit "Datenbankname.Tabellenname hat es übrigens funktioniert. Die Tabellen lassen sich problemlos kopieren und einfügen.

Vielen Dank und einen schönen Abend!
zachy