Seite 1 von 2
LO-Base - Tabellen nach MySQL importieren
Verfasst: Do 22. Nov 2018, 12:32
von Wambui
Hallo,
ich habe eine Base-DB mit vier Tabellen, die ich nach MySQL importieren möchte.
Gibt es dazu eine Importfunktion oder wie ist das möglich?
Grüße
Wambui
Re: LO-Base - Tabellen nach MySQL importieren
Verfasst: Do 22. Nov 2018, 15:47
von RobertG
Hallo Wambui,
erstelle eine Base-Datenbank, die auf Deine MySQL-Datenbank zugreift. Öffne dann neben dieser Datenbank auch die Base-Datenbank, die auf die interne HSQLDB zugreift. Kopiere jede einzelne Tabelle aus dem Tabellenordner und füge sie in die Base-Datenbank mit MySQL-Verbindung ein.
Zur Verbindung nach MySQL brauchst Du in der Version LO 6.1 noch einen speziellen Connector. Am besten funktioniert da der JDBC-Connector. Siehe Base-Handbuch. Ab Version LO 6.2 wird ein interner Treiber mitgeliefert.
Gruß
Robert
Re: LO-Base - Tabellen nach MySQL importieren
Verfasst: Do 22. Nov 2018, 18:58
von Wambui
Hallo Robert,
vielen Dank für Deine Antwort. Soweit kann sich Base (LibreOffice 6.1.3.2) mit dem Server beim Provider verbinden. Will ich jetzt die Tabellen, wie von Dir vorgeschlagen, kopieren, dann erhalte ich diese Fehlermeldung
SQL-Status: 08S01
The last packet successfully received from the server was 228.193 milliseconds ago. The last packet sent successfully to the server was 228.211 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
Ich habe "mysql-connector-java-8.0.13.jar" auf einem Debian 9-LInux installiert.
Grüße
Wambui
Re: LO-Base - Tabellen nach MySQL importieren
Verfasst: Do 22. Nov 2018, 21:13
von RobertG
Hallo Wambui,
so etwas hatte ich auch schon einmal, allerdings nicht mit so einer ausführlichen Fehlermeldung. Da steht nämlich direkt drin, was Du machen sollst:
autoReconnect=true
Hier der entsprechende Eintrag von mir im Handbuch:
Der JDBC-Zugang mit MySQL/MariaDB kann auch direkt über die Auswahl JDBC statt des Untermenüs MySQL → JDBC erfolgen. Dies kann besonders dann sinnvoll sein, wenn dem Treiber Parameter mitgegeben werden sollen.
Ohne Parameter trennt z.B. der JDBC-Treiber wie auch der direkte Treiber zu einer MySQL-Datenquelle im Internet nach recht kurzen Pausenzeiten die Verbindung. Mit der folgenden Einstellung wird dies vermieden:
jdbc:mysql://«Host der Datenbank»:3306/«Datenbankname»?autoReconnect=true
Ich hoffe, dass das das (Übertragungsgeschwindigkeits)Problem bei Dir auch behebt.
Gruß
Robert
Re: LO-Base - Tabellen nach MySQL importieren
Verfasst: Fr 23. Nov 2018, 09:51
von Wambui
Hallo Robert,
vielen Dank, das hat prima geholfen.
RobertG hat geschrieben: ↑Do 22. Nov 2018, 21:13
Ich hoffe, dass das das (Übertragungsgeschwindigkeits)Problem bei Dir auch behebt.
Sagen wir mal, ich habe anders gesucht, vor allem nicht in dieser Datei. Allerdings sobald ich die Base-Datei zulange offen halte, tritt diese Fehlermeldung wieder auf. Die Datei sollte aber schon länger offen stehen können.
Und noch etwas ist mir aufgefallen, ich musste bereits dreimal das Passwort für die Datenbank eingeben. Kann man das nicht irgendwie vermeiden? Denn das Passwort habe ich mit 16 Zeichen sehr lang und kryptisch gewählt, da die Datenbank im Internet beim Provider zur Verfügung gestellt wird.
Grüße
Wambui
Re: LO-Base - Tabellen nach MySQL importieren
Verfasst: Fr 23. Nov 2018, 17:15
von RobertG
Hallo Wambui,
da habe ich nicht weiter getestet. Wenn Du auf Dauer über Base auf die Internetdatenbank zugreifen willst, dann wäre da vielleicht dann doch eine ODBC-Verbindung besser - oder die direkte Verbindung, aber die ist erst ab LO 6.2 fest mit dabei.
Internetdatenbanken habe ich bisher nicht mit Base bedient. Da arbeite ich lieber mit PHP auf dem Server selbst.
Du könntest natürlich das Passwort in Deiner *.odb-Datei speichern. Das Ginge dann über ein Makro, ist aber natürlich aus Sicherheitsgründen nicht in der GUI enthalten und würde auch im Makro in Klartext stehen.
Gruß
Robert
Re: LO-Base - Tabellen nach MySQL importieren
Verfasst: Mo 26. Nov 2018, 11:15
von Wambui
Hallo Robert,
wie gesagt die Migration der Daten hatte wunderbar geklappt. Nur sind das jetzt Tabellen der DB-Engine MyISAM, die Base anlegt. Für Beziehungen benötige ich aber INNODB.
Deshalb habe ich in der Datenbank alle Tabellen mit
geändert.
Leider kann ich in Base immer noch keine Beziehungen anlegen. Ist das überhaupt möglich?
Grüße
Wambui
Re: LO-Base - Tabellen nach MySQL importieren
Verfasst: Mo 26. Nov 2018, 17:19
von RobertG
Hallo Wambui,
die Beziehungen wirst Du bei MySQL/MariaDB nicht über Extras > Beziehungen definieren können. Da Du die Datenbank bei einem Provider hast kannst Du hierfür sicher PHPMyAdmin nutzen. Geht über die Tabelle > Struktur > Beziehungsansicht.
Da MySQL-Tabellen früher standardmäßig eben als MyISAM angelegt wurden hat sich da bei Base auch nichts weiter getan. Relationen kennt Base bei MySQL nicht.
Ich habe das gerade noch einmal mit dem direkten Treiber von LO 6.2 getestet. Da werden zwar Tabellen aufgezeigt, aber die Beziehungen der Tabellen lassen sich nicht editieren und entsprechen auch nicht der Vorlage.
Gruß
Robert
Re: LO-Base - Tabellen nach MySQL importieren
Verfasst: Mo 26. Nov 2018, 17:33
von Wambui
Hallo Robert,
Danke für Deine Antwort. Das habe ich heute Nachmittag auch schon entdeckt. Bin gerade dabei, die Anwendung mit dem PHPmyAdmin und den Beziehungen zu verstehen. Nebenbei habe ich dort den Designer entdeckt, vielleicht hilft der auch.
Jedenfalls benötigt eine Tabelle zwei 1:n-Relationen zu zwei weiteren Tabellen.
Re: LO-Base - Tabellen nach MySQL importieren
Verfasst: Mo 26. Nov 2018, 18:56
von RobertG
Hallo Wambui,
den Designer kann ich hier nicht starten. Scheint als benutze der einen besonderen Serverzugang (Port). Ich kann mich allerdings aus früheren Versionen daran entsinnen, dass der Designer damals nur die Darstellung der Verbindungen war, die anderweitig erstellt wurden. Also nicht vergleichbar mit dem, was Base z.B. bei internen Datenbanken mit der Beziehungsdefinition macht.
Gruß
Robert