7
Juni
2023
So verbinden Sie LibreOffice Base mit MySQL
15:45

So verbinden Sie LibreOffice Base mit MySQL

7 Juni 2023 15:45

In diesem Artikel spreche ich darüber, wie Informationen von MySQL an Linux an Libreoffice Base übertragen werden.

Vorwort

Das LibreOffice -Paket ist in der Lieferung vieler, wenn nicht aller Linux -Verteilungen enthalten. Außerdem kann es aus dem Repository installiert werden und Laden Sie in Form einer DEB- oder RPM -Datei herunter.

Einführung

Bei der Arbeit habe ich ungefähr einmal im Monat mit der MySQL -Datenbank eine Abstimmung der Excel -Quelldatei vorgenommen. MySQL hat die Kommunikation mit LibreOffice Base und dem ODBC -Connector implementiert.

LibreOffice Base ist ein Analogon des MS Access -Programms.
Die Datenbank wird im Linux -Betriebssystem unter einem eindeutigen Namen von LibreOffice Calc, Writer und Libreoffice Basic -Programmen aufgezeichnet.

Zwischen der MySQL- und LibreOffice -Basis habe ich \ ODBC -Anschluss verwendet. Später war es möglich, die Verbindung über JDBC zu verwenden.

Programmverbindungsschema

Shema

DBMS MySQL <--> MySQL Connector ODBC/JDBC <--> libreOffice Base <--> libreoffice calc

0. Installation MySQL und LibreOffice

Die MySQL -Installation wird im vorherigen berücksichtigt Artikel über MySQL.
So installieren Sie ein LibreOffice -Paket unter Linux - siehe Artikel Wiki.

1. Datenbank

Die Datenbank ist, wie jeder weiß, zum Speichern von Informationen konzipiert. In der Regel handelt es sich um eine Reihe von miteinander verbundenen Tabellen (relationale Datenbank). In einer einfachen Datenbank ist einer der Tabellen notwendigerweise die wichtigste (z. B. ein Journal of Operations oder Waren in einem Lagerhaus) - der Rest sind nur Nachschlagewerke. In meinem Fall wurde eine Haupttabelle "Angebote" verwendet, aus der ich mit Anfragen eine Auswahl getroffen habe.

Zu den Testzwecken werde ich ein Beispiel anweisen, nicht in einer realen Datenbank. Die Zusammensetzung der Felder wird beispielsweise vereinfacht.

Tabelle Angebote

  • ID - Ganzzahl (eindeutiges Schlüsselfeld)
  • Name - Name
  • Beschreibung - Beschreibung
  • Preis - Preis
  • Anzeige - ein Zeichen (0 oder -1 - nicht anzeigen (versteckt / verkauft), 1 oder 2 - Anzeige (zum Verkauf / Promotion)
Datenbankprimer erstellen; Verwenden Primer; Tropfentisch, wenn existiert `offers`; Tabelle erstellen `offers` ( `offer_id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(256) COLLATE utf8_unicode_ci DEFAULT NULL, `description` varchar(4096) COLLATE utf8_unicode_ci DEFAULT NULL, `price` int(11) DEFAULT NULL, `display` int(11) DEFAULT '1', PRIMARY KEY (`offer_id`) ) Motor = innoDB auto_increment = 546 Standard charSet = utf8 collate = utf8_unicode_ci; INSERT INTO `offers` VALUES (1,'AAAA', '', 10000, 1),(2,'BBBB', '', 80, 1),(3,'CCCCC', '', 555, 0),(4,'DD', '', 7, 1); Datei Dampa Bd `primer` для MYSQL: [Primer.sql.zip](primer.sql.zip) Um eine Datenbank zu erstellen, führen wir dieses Skript im Namen des Datenbankbenutzers aus `root`: `mysql -u root -p` `source primer.sql` ### 2. Methoden zur Verbindung zu MySQL Alle Softwaremethoden zur Verbindung zu MySQL sind auf der Seite aufgeführt [https://www.mysql.com/products/connector/](https://www.mysql.com/products/connector/) - есть фирменные драйверы ADO.NET, JDBC, ODBC, Python и разработанные сообществом PHP Drivers for MySQL и др. Ich habe die Methode zur Verbindung zu MySQL - ODBC oder JDBC überprüft. Der Vorteil wurde von ODBC gegeben, weil ich ihn schon lange benutzt habe. Sie können jedoch in irgendeiner Weise installieren: * ODBC -Anschluss für MySQL - siehe Absatz 2.1 * JDBC -Anschluss für MySQL - siehe Absatz 2.2 #### 2.1 Installation des Steckers ODBC für MySQL Wir finden die Anzahl der Betriebssystemversion heraus: lsb_release -a Laden Sie die Connector ODBC -Distribution für Ihre Version von Ubuntu oder Debian herunter. Gehen Sie dazu zur nächsten Seite: [https://dev.mysql.com/downloads/connector/odbc/](https://dev.mysql.com/downloads/connector/odbc/) Wo wir die Verteilung des ODBC -Anschlusses für MySQL für unser Betriebssystem herunterladen: Wenn die Linux -Minzverteilung, finden Sie die Codebasis (Paketbasis), die Sie herausfinden können [Anfrage](https://duckduckgo.com/?q=linux+mint+vera+package+base+ubuntu+lts+version&t=lm&atb=v297-1&ia=web) в поисковике. Zum Beispiel für Limux Mint 21.1 beträgt die Codebasis Ubuntu 22.04. Das heißt, für Linux Mint 21.x müssen Sie ** Ubuntu Linux 22.04 (x86, 64-Bit), DEB-Paket ** (Mysql-connector-odbc_8.2.0-2.0 -ubuntu22.04_amd64.deb) laden, ohne die Zeichen von 1,9 mb. Klicken Sie auf der nächsten Seite auf "Nein, danke, starten Sie einfach meinen Download". Installieren Sie das geladene Paket des ODBC-Konzerns (DEB-Datei) mit einem doppelten Klick auf die Maus mit Abhängigkeiten (3 PCs.). Führen Sie die ausführbare Datei vom Terminal aus `myodbc-installer` - он выведет справку по использованию коннектора из командной строки: myodbc-installer Er wird ein Zertifikat im Rahmen des Programms anzeigen:
 [Fehler] Nicht angegebene Argumente
+---
 myodbc-installer v8.02.0000                                 
+---

 Description                                                          

    This program is for managing MySQL Connector/ODBC configuration   
    options at the command prompt. It can be used to register or      
    unregister an ODBC driver, and to create, edit, or remove DSN.    

    The program has been designed to work across all platforms        
    supported by Connector/ODBC, including MS Windows and             
    various Unix-like systems.                                        

    The program requires that unixODBC version 2.2.14 or newer        
    has already been installed on the system.                         
    UnixODBC can be downloaded from here:                             
    http://www.unixodbc.org/                                          

 Syntax                                                               

    myodbc-installer   [Options]                      

 Object                                                               

     -d driver                                                        
     -s datasource                                                    

 Action                                                               

     -l list                                                          
     -a add (add/update for data source)                              
     -r remove                                                        
     -h display this help page and exit                               

 Options                                                              

     -n                                                         
     -t                                             
        if used for handling data source names the  
        can contain ODBC options for establishing connections to MySQL
        Server. The full list of ODBC options can be obtained from    
        http://dev.mysql.com/doc/connector-odbc/en/                   
     -c0 add as both a user and a system data source                  
     -c1 add as a user data source                                    
     -c2 add as a system data source (default)                        

 Examples                                                             

    List drivers                                                      
    shell> myodbc-installer -d -l                                     

    Register a Unicode driver (UNIX example)                          
    shell> myodbc-installer -d -a -n "MySQL ODBC 8.2 Unicode Driver" \ 
              -t "DRIVER=/path/to/driver/libmyodbc8w.so;SETUP=/path/to/gui/myodbc8S.so" 

      Note                                                            
         * The /path/to/driver is /usr/lib for 32-bit systems and     
           some 64-bit systems, and /usr/lib64 for most 64-bit systems

         * driver_name is libmyodbc8a.so for the ANSI version and     
           libmyodbc8w.so for the Unicode version of MySQL ODBC Driver

         * The SETUP parameter is optional; it provides location of   
           the GUI module (libmyodbc8S.so) for DSN setup, which       
           is not supported on Solaris and Mac OSX systems            

    Add a new system data source name for Unicode driver              
    shell> myodbc-installer -s -a -c2 -n "test" \                  
              -t "DRIVER=MySQL ODBC 8.2 Unicode Driver;SERVER=localhost;DATABASE=test;UID=myid;PWD=mypwd" 

    List data source name attributes for 'test'                       
    shell> myodbc-installer -s -l -c2 -n "test"                     
+---
 Pre>

! Bitte beachten Sie, dass die Version des ODBC -Connector 8.0.2 der Version des MySQL -Servers - 8.0.35 entspricht.

 ** Unsere Aufgabe ist es, eine Datenquelle DSN zu erstellen! ** 

!! DSN -Einstellungen für ODBC werden in der Textdatei der Konfiguration gespeichert **/etc/odbc.ini ** 

Zunächst werden wir die installierten ODBC -Treiber überprüfen:

    myodbc-installer -d -l

Ergebnis:
_Mysql_
_Mysql ODBC 8.2 Unicode Driver_
_Mysql ODBC 8.2 ANSI DRIVER_

Hinzufügen einer neuen DSN -Systemquelle von ODBC -Daten mit dem Namen "Primer",
mit der MySQL -Datenbank "Primer" verbunden (** mit sudo! **).
Wir achten auf die Verbindungsparameter, die im Schlüssel -T übertragen werden:

 ** Kurzes Team ** - Danach müssen Sie /etc/odbc.ini bearbeiten:

    sudo myodbc-installer -s -a -c2 -n "primer" -t "DRIVER=MySQL ODBC 8.2 Unicode Driver;SERVER=localhost;DATABASE=primer;Socket=/var/run/mysqld/mysqld.sock" 

 ** Vollständiger Befehl ** ([Mark] wird empfohlen [/Mark]) - Danach bearbeiten Sie die Datei **/etc/odbc.ini **.

     sudo myodbc-installer -s -a -c2 -n "primer" -t "DRIVER=MySQL ODBC 8.2 Unicode Driver;SERVER=localhost;DATABASE=primer;UID=root;PWD=11111;Port=3306;Socket=/var/run/mysqld/mysqld.sock" 

! Wenn Sie eine fehlerhafte Datenquelle löschen müssen, Befehl: sudo /myodbc -inchstaller -s -r -n Primer_err

Wobei -C2 eine systemische Datenquelle (und nicht der Benutzer) bedeutet. Datenbank = Primer - Datenbankname in MySQL

Überprüfen Sie die Erstellung einer Datenquelle (Listenausgabe)

    myodbc-installer -s -l

Ergebnis:
_primer - MySQL ODBC 8.2 Unicode Driver_

Datenquelle im ODBC -Connector ** erfolgreich ** Erstellt. Jetzt ist die ODBC -Datenquelle im Rahmen dieses Betriebssystems dieses PCs verfügbar.

#### Bearbeiten /etc/odbc.ini

Wenn Sie den Parameter von Socket =/var/run/mysqld.sock nicht festlegen, wird ein Fehler ausgegeben, wenn Sie eine Verbindung zum Datenbankanschluss herstellen
 `[MySQL][ODBC 5.3(a) Driver]Can't connect to local`   
 `MySQL server through socket '/tmp`   
 `mysql.sock' (2) ./connectivity/source/drivers/odbc/`   
 `OTools.cxx:357`   

Korrigieren Sie ODBC.ini, indem Sie die fehlenden Zeilen hinzufügen.
 ** Ein Beispiel für eine korrekte DSN -Datei für die Quelle "Primer": ** 

_Odbc.ini enthält nicht ohne Passwort_

 [Primer]
Treiber = MySQL ODBC 8.2 Unicode -Treiber
Datenbank = Realty
No_schema = 1
Port = 3306
PWD = 55555
Server = localhost
Socket =/var/run/mysqld/mysqld.sock
Uid = root 

Odbc.ini mit einem Passwort in offener Form

[Primer]
Treiber = MySQL ODBC 8.2 Unicode -Treiber
Datenbank = Realty
No_schema = 1
Port = 3306
PWD = 55555
Server = localhost
Socket =/var/run/mysqld/mysqld.sock
Uid = root
PWD = 11111

Der Unterschied zwischen den beiden Optionen, da es nicht schwer zu erraten ist - mit einem Passwort, das Sie bei der Auswahl von Daten aus der Datenbank nicht eingeben müssen (die Sicherheit verringert leicht).

Das Vorhandensein eines String -Sockets =/var/run/mysqld/mysqld.sock v /etc/odbc.ini ist obligatorisch!

2.2 Installation JDBC Connector für MySQL

1) Sie müssen die Verteilung des JDBC -Anschlusses von der Seite Connector/J herunterladen
In Form von DEB- oder RPM -Datei (abhängig vom Betriebssystem) für seine Linux -Verteilung:

Lade -Seiten -Anschluss/J:
https://dev.mysql.com/downloads/connector/j/

2) Installieren Sie die DEB- oder RPM -Datei.

3. Erstellen einer Datenbank LibreOffice -Basis und ihrer Verbindung zu MySQL

Rufen Sie in jedem LibreOffice -Programm den Menüpunkt an

  • Файл - Создать - База данных

Im ersten Schritt "Willkommen zum Master of Databases libreoffice" SELECT "Verbinden Sie mit der vorhandenen Datenbank" - MySQL
Schritt 1 - Verbinden Sie eine Verbindung mit der vorhandenen MySQL -Datenbank

3.1 Option: Verwenden Sie den ODBC -Anschluss

Wählen Sie im zweiten Schritt aus - Verwenden Sie die Verbindung von Connector ODBC "über ODBC (Open Database Connectivity)" :
Schritt 2 - ODBC

Geben Sie beim nächsten, dritten Schritt des Masters den Namen ein oder wählen Sie die Schaltfläche "Überprüfung ...", den Namen DSN, zuvor für den Connector ODBC festgelegt, der zuvor festgelegt wurde
Schritt 3 - ODBC -Auswahl der Datenquelle

На предпоследнем, четвертом шаге выполняем тестирование. Если имя пользователя и пароль сохранены в /etc/odbc.ini, вводить их не нужно.
STEP4-ODBC-Test

Wenn /etc/odbc.ini korrekt konfiguriert ist, gibt es keine Fehler. Bearbeiten Sie ansonsten die Datei odbc.ini und führen Sie erneut Tests durch.

Klicken Sie auf das ** "Fertig!" Schaltfläche unten im Assistenten und speichern Sie die Datenbank in der ODF -Datenbankdatei im lokalen Ordner des Benutzers.

Die Datenbank mit externen Tabellen von MySQL wird geöffnet. Tabellen können geöffnet und Daten beobachten:
Offen

LibreOffice Base Libreofce wird erstellt und funktioniert.

3.2 Verbindung LibreOffice Base zu MySQL mit JDBC

JAR-Klasse für MySQL ist im Ordner/usr/share/java/mit dem Namen MySQL-Connector-Java-8.0.33.jar installiert

Wir gehen zu LibreOffice Calc - Service - Parameters - LibreOffice - Vergrößerte Fähigkeiten, um den Weg der Java.sql.driver -Klasse hinzuzufügen: Die Schaltfläche "Weg der Klasse" - Öffnen Sie die Computerwurzel in der Adresse - Geben Sie den Pfad /usr/share/java/mysql -connector -java -8.0.33.jar.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.0.33.jar.

In (Tools - Optionen - LibreOffice - Fortgeschritten). Glachka "Verwenden Sie die Java Virtual Machine" sollte eingeschaltet werden.

Erstellen einer Datenbank in LibreOffice Base mit einer Verbindung über JDBC

Datei - Datenbank erstellen -
Schritt 1 ist für ODBC und JDBC dieselbe - "Verbinden Sie sich mit der vorhandenen MySQL -Datenbank
Schritt 1 - Verbinden Sie eine Verbindung mit der vorhandenen MySQL -Datenbank

Wählen Sie bei Schritt 2 JDBC aus:
Schritt 2 - Java -Datenbankkonnektivität

In Schritt 3 müssen Sie die Parameter angeben: den Namen der Datenbank, des Servers und des Port MySQL:

  • Primer
  • Localhost
  • 3306

Im Feld "Klasse" korrigieren wir org.Mariadb.jdbc.driver on com.mysql.cj.jdbc.driver

Achtung: Klasse java.sql.driver Verwenden Sie in einigen Handbüchern den Namen "com.mysql.cj.jdbc.driver".

Klicken Sie auf den "Klassentest" - der Treiber wird erfolgreich geladen.
JDBC3

Geben Sie bei Schritt 4 den Benutzernamen an, Sie benötigen ein Passwort und klicken Sie auf die "Testverbindung".
Jdbc-usspeh

Komplett mit der Wartung der LibreOffice -Datenbank in eine Festplattendatei.

Wenn die Klasse "java.sql.driver class" nicht auftritt
oder "Com.mysql.jdbc.driver 'kann nicht sein).
Lösung: Java ändern in private Build 1.8, starten Sie Libreoffice neu:
Privat
Der Name der Klasse in Schritt 3, wie oben angegeben, sollte com.mysql.cj.jdbc.driver sein
und die Klassendatei in den Service-Parameters-Libreoffice-Advanced-Gelegenheiten, den Weg zur Klasse java.sql.driver hinzuzufügen: Der Weg zum MySQL-Connector-8.0.33.jar oder mysql-Connector-J-8.0.33.jar Must /usr/share/java/Mava/Mava/Mava/Mava/Mysql-Connector-Java-Java/java/java/java/java/java/java/java/Mysql-conna-8.0.0.0.0.0java/java/java/java/Mysql- Mysql-Connector-J-8.0.33.jar

Hinweis: Die Java -Klasse im JAR -Format wird installiert, wenn es von der Rektor -DEB -Datei gestartet wird, kann jedoch auch von der Seite heruntergeladen werden https://dev.mysql.com/downloads/connector/j/ - Platform independent - архив tat.gz в нём mysql-connector-j-8.0.33.jar Zuerst entfernen wir in den Home -Ordner ohne Möglichkeiten und bewegen das Glas in/usr/share/java/.

Das Ergebnis mit JDBC

Das Ergebnis unterscheidet sich von der ODBC -Version - die gesamte Datenbank ist sichtbar, einschließlich systemischer (weil die Verbindung mit dem Benutzerstamm). Meiner Meinung nach ist das Ignorieren des Datenbanknamens der Nachteil des JDBC -Anschlusses im Vergleich zur Verbindung über ODBC.

JDBC-RESULT

MySQL -Tabellen über JDBC können auch in der Libreoffice -Basis zum Anzeigen oder Bearbeiten geöffnet werden.
JDBC. Vergessen Sie nicht, die LibreOffice -Basisdatenbank in der *zu speichern. ODB -Datei.

Abschluss

In dem Artikel werden zwei Methoden zur Verbindung von LibreOffice -Basis mit der Datenbank MySQL - ODBC und JDBC erörtert. Beide Methoden sind Arbeiter.

Der nächste Artikel

*Wie führe ich eine Anfrage von LibreOffice Calc in die MySQL -Datenbank aus?



Verwandte Veröffentlichungen