7
juin
2023
Comment connecter LibreOffice Base à MySQL
15:45

Comment connecter LibreOffice Base à MySQL

7 juin 2023 15:45

Dans cet article, je parle de la façon de transmettre des informations de MySQL à Linux à LibreOffice Base.

Préface

Le package LibreOffice est inclus dans l'ensemble de la livraison de nombreuses distributions Linux, sinon toutes. De plus, il peut être installé à partir du référentiel et Télécharger sous la forme du fichier Deb ou RPM.

Introduction

Au travail, environ une fois par mois, j'ai fait une réconciliation du fichier source Excel avec la base de données MySQL. MySQL a implémenté la communication avec LibreOffice Base et le connecteur ODBC.

LibreOffice Base est un analogue du programme d'accès MS.
La base de données est enregistrée dans le système d'exploitation Linux sous un nom unique disponible auprès des programmes de base de LibreOffice Calc, écrivain et LibreOffice.

Entre la base MySQL et LibreOffice, j'ai utilisé le connecteur \ ODBC. Plus tard, il a été possible d'utiliser la connexion via JDBC.

Schéma de connexion du programme

Shema

DBMS MySQL <-> Connecteur MySQL ODBC / JDBC <-> LibreOffice Base <-> LibreOffice Calc

0. Installation MySQL et LibreOffice

L'installation de MySQL est considérée dans le précédent Article sur MySQL.
Comment installer un package LibreOffice dans Linux - voir Wiki d'article.

1. Base de données

La base de données, comme tout le monde le sait, est conçue pour stocker des informations. En règle générale, ils sont un ensemble de tables interconnectées (base de données relationnelle). Dans une base de données simple, l'une des tables est nécessairement la principale (par exemple, un journal des opérations ou des marchandises dans un entrepôt) - les autres ne sont que des livres de référence. Dans mon cas, une table principale "propose" a été utilisée, à partir de laquelle j'ai fait une sélection à l'aide de demandes.

À des fins de test, je vais afficher un exemple, pas sur une base de données réelle. La composition des champs est simplifiée par exemple.

Tableau Offre

  • ID - entier (champ de clé unique)
  • Nom - nom
  • Description - Description
  • Prix - Prix
  • Affichage - un panneau (0 ou -1 - Ne pas afficher (entrée cachée / vendu), 1 ou 2 - Affichage (en vente / promotion)
Créer une amorce de base de données; Utiliser l'amorce; Table de dépôt si existe `offers`; Créer une table `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`) ) Moteur = innodb auto_increment = 546 charme par défaut = 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); Fichier Dampa BD `primer` для MYSQL: [Primer.sql.zip](primer.sql.zip) Pour créer une base de données, nous effectuons ce script au nom de l'utilisateur de la base de données `root`: `mysql -u root -p` `source primer.sql` ### 2. Méthodes de connexion à MySQL Toutes les méthodes logicielles de connexion à MySQL sont répertoriées sur la page [https://www.mysql.com/products/connector/](https://www.mysql.com/products/connector/) - есть фирменные драйверы ADO.NET, JDBC, ODBC, Python и разработанные сообществом PHP Drivers for MySQL и др. J'ai vérifié la méthode de connexion à MySQL - ODBC ou JDBC. L'avantage a été donné par ODBC, car je l'utilise depuis longtemps. Mais vous pouvez installer de n'importe quelle façon: * Connecteur ODBC pour MySQL - Voir paragraphe 2.1 * Connecteur JDBC pour MySQL - Voir paragraphe 2.2 #### 2.1 Installation du connecteur ODBC pour MySQL Nous découvrons le numéro de la version du système d'exploitation: lsb_release -a Téléchargez la distribution ODBC du connecteur pour votre version d'Ubuntu ou Debian. Pour ce faire, accédez à la page suivante: [https://dev.mysql.com/downloads/connector/odbc/](https://dev.mysql.com/downloads/connector/odbc/) Où nous téléchargeons la distribution du connecteur ODBC pour MySQL pour notre système d'exploitation: Si la distribution Linux Mint, découvrez la base de code (base de package), vous pouvez découvrir [demande](https://duckduckgo.com/?q=linux+mint+vera+package+base+ubuntu+lts+version&t=lm&atb=v297-1&ia=web) в поисковике. Par exemple, pour Limux Mint 21.1 - L'Ubuntu de base de code est de 22,04. Autrement dit, pour Linux Mint 21.x, vous devez charger ** Ubuntu Linux 22.04 (x86, 64-bits), package DEB ** (MySQL-Connector-ODBC_8.2.0-2.0 -ubuntu22.04_amd64.deb) sans personnages débogueurs de 1,9 mb. Sur la page suivante, cliquez sur "Non merci, commencez mon téléchargement". Installez le package chargé du connecteur ODBC (fichier DEB) avec un double clic de la souris avec des dépendances (3 pcs.). Exécutez le fichier exécutable à partir du terminal `myodbc-installer` - он выведет справку по использованию коннектора из командной строки: myodbc-installer Il affichera un certificat dans le cadre du programme:
 [Erreur] Ne pas effacer les arguments donnés
+ ---
 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"                     
+ ---
! Veuillez noter que la version de l'ODBC -Connector 8.0.2 correspond à la version du serveur MySQL - 8.0.35. ** Notre tâche consiste à créer une source de données DSN! ** !! Les paramètres DSN pour ODBC sont stockés dans le fichier texte de la configuration ** / etc / odbc.ini ** Tout d'abord, nous vérifierons les pilotes ODBC installés: myodbc-installer -d -l Résultat: _Mysql_ _Mysql odbc 8.2 Unicode Driver_ _Mysql ODBC 8.2 ANSI Driver_ Ajout d'une nouvelle source système DSN de données ODBC avec le nom "Primer", connecté à la base de données MySQL "Primer" (** Perforce avec sudo! **). Nous faisons attention aux paramètres de connexion transmis dans la clé -t: ** Brève équipe ** - Après cela, vous devrez modifier /etc/odbc.ini: 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" ** Commande complète ** ([Mark] est recommandée [/ mark]) - après elle, modifiez le fichier ** / 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" ! Si vous devez supprimer une source de données erronée, commande: sudo / myoDbc -inchstaller -s -r -n primer_err Où -c2 signifie une source systémique de données (et non l'utilisateur). Base de données = amorce - Nom de la base de données dans MySQL Vérification de la création d'une source de données (sortie de liste) myodbc-installer -s -l Résultat: _primer - MySQL ODBC 8.2 Unicode Driver_ Source de données dans le connecteur ODBC ** avec succès ** créé. Maintenant, la source de données ODBC est disponible dans le cadre de ce système d'exploitation de ce PC. #### Édition /etc/odbc.ini Si vous ne définissez pas le paramètre socket = / var / run / mysqld.sock, une erreur sera émise lors de la connexion au connecteur de la base de données `[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` Corrigez ODBC.ini en y ajoutant les lignes manquantes. ** Un exemple d'un fichier DSN correct pour la source "amorce": ** _Odbc.ini ne contient pas sans mot de passe_ [amorce] Driver = MySQL ODBC 8.2 Unicode Pilote Base de données = Realty No_schema = 1 Port = 3306 PWD = 55555 Serveur = localhost Socket = / var / run / mysqld / mysqld.sock Uid = root

ODBC.ini avec un mot de passe en forme ouverte

[amorce]
Driver = MySQL ODBC 8.2 Unicode Pilote
Base de données = Realty
No_schema = 1
Port = 3306
PWD = 55555
Serveur = localhost
Socket = / var / run / mysqld / mysqld.sock
Uid = racine
PWD = 11111

La différence entre les deux options, car il n'est pas difficile de deviner - avec un mot de passe, vous n'avez pas besoin de saisir le nom d'utilisateur et le mot de passe lors de la sélection des données dans la base de données (réduit légèrement la sécurité).

La présence d'un socket de chaîne = / var / run / mysqld / mysqld.sock v /etc/odbc.ini est obligatoire!

2.2 Connecteur JDBC d'installation pour MySQL

1) Vous devez télécharger la distribution du connecteur JDBC à partir de la page Connecteur / J
Sous la forme d'un fichier DEB ou RPM (selon le système d'exploitation), pour sa distribution Linux:

Connecteur de page de chargement / J:
https://dev.mysql.com/downloads/connector/j/

2) Installez le fichier DEB ou RPM.

3. Création d'une base de LibreOffice à base de données et sa connexion à MySQL

Dans tout programme LibreOffice, appelez l'élément de menu

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

Dans la première étape "Bienvenue dans le maître des bases de données libreOffice" sélectionnez "Connectez-vous avec la base de données existante" - MySQL
Étape 1 - Connectez-vous avec la base de données MySQL existante

3.1 Option: Utilisation du connecteur ODBC

À la deuxième étape, sélectionnez - en utilisant le connecteur ODBC "Connexion via ODBC (ouvrez la connectivité de la base de données)" :
Étape 2 - ODBC

À la troisième étape suivante du maître, entrez le nom ou sélectionnez à l'aide du bouton "Review ...", le nom DSN, précédemment défini pour le connecteur ODBC
Étape 3 - ODBC Choix de la source de données

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

Si /etc/odbc.ini est correctement configuré, il n'y aura pas d'erreurs. Sinon, modifiez le fichier odbc.ini et effectuez à nouveau des tests.

Cliquez sur le ** "Ready!" Bouton en bas de l'assistant et enregistrez la base de données dans le fichier de base de données ODF dans le dossier local de l'utilisateur.

La base de données avec des tables externes de MySQL s'ouvrira. Les tables peuvent être ouvertes et regarder les données:
Ouvrir

LibreOffice Base Libreofce est créée et fonctionne.

3.2 Connexion Base libreOffice à MySQL à l'aide de JDBC

La classe JAR pour MySQL est installée dans le dossier / usr / share / java / avec le nom MySQL-Connector-Java-8.0.33.jar

Nous allons à LibreOffice Calc - Service - Paramètres - LibreOffice - Capacités agrandies pour ajouter la voie à la classe java.sql.driver: le bouton "Way of the Class" - Ouvrez la racine de l'ordinateur dans l'adresse - Indiquez le chemin /usr/share/java/mysql-connector-java-8.0.33.jar

Dans (Tools - Options -libreOffice - Advanced). Glachka "Utilisez la machine virtuelle Java" doit être activé.

Création d'une base de données dans LibreOffice Base avec une connexion via JDBC

Fichier - Créer - Base de données
L'étape 1 est la même pour ODBC et JDBC - "Connectez-vous avec la base de données MySQL existante
Étape 1 - Connectez-vous avec la base de données MySQL existante

À l'étape 2, sélectionnez JDBC:
Étape 2 - Connectivité de la base de données Java

À l'étape 3, vous devez spécifier les paramètres: le nom de la base de données, du serveur et du port mysql:

  • Primer
  • Localhost
  • 3306

Dans le champ "Classe", nous corrigeons org.mariadiadb.jdbc.driver sur com.mysql.cj.jdbc.driver

Attention: classe java.sql.driver indiqué dans certains manuels, utilisez le nom "com.mysql.cj.jdbc.driver"

Cliquez sur "Test de classe" - le pilote est chargé avec succès.
Jdbc3

À l'étape 4, indiquez le nom d'utilisateur, vous avez besoin d'un mot de passe et cliquez sur la "connexion de test"
JDBC-USPEH

Compléter avec la maintenance de la base de données LibreOffice dans un fichier de disque dur.

Si la classe "Java.Sql.Driver Class" ne peut pas être téléchargée ./connectivity/drivers/jdbc/jconnection.cxx:685 "
ou "Com.mysql.jdbc.driver 'ne peut pas être).
Solution: Changer Java en build privé 1.8, redémarrer LibreOffice:
Privé
Le nom de la classe à l'étape 3, comme indiqué ci-dessus, doit être com.mysql.cj.jdbc.driver
et le fichier de classe dans les possibilités de service-paramètres-LibreOffice-Advanced pour ajouter la voie à la classe java.sql.driver: le chemin de la voie à MySQL-Connnector-8.0.33.jar ou mysql-connector-j-8.0.33.jar doit être /usr/share/java/mysql-connect MySQL-Connector-J-8.0.33.jar

Remarque: la classe Java au format JAR est installée lorsqu'elle est lancée par le fichier Recteur Deb, mais il peut également être téléchargé à partir de la page https://dev.mysql.com/downloads/connector/j/ - Platform independent - архив tat.gz в нём mysql-connector-j-8.0.33.jar Nous supprimons d'abord dans le dossier de la maison sans moyens , puis déplacons le pot dans / usr / share / java /.

Le résultat avec JDBC

Le résultat diffère de la version ODBC - toute la base de données est visible, y compris celles systémiques (car la connexion avec la racine de l'utilisateur). À mon avis, l'ignorance du nom de la base de données est l'inconvénient du connecteur JDBC par rapport à la connexion via ODBC.

Résulte JDBC

Les tables MySQL via JDBC peuvent également être ouvertes dans la base de LibreOffice pour la visualisation ou l'édition.
JDBC. N'oubliez pas de sauvegarder la base de données de base LibreOffice à la \ *. Fichier ODB.

Conclusion

L'article traite de deux méthodes de connexion à partir de LibreOffice Base à la base de données MySQL - ODBC et JDBC . Les deux méthodes sont des travailleurs.

L'article suivant

*Comment exécuter une demande de LibreOffice CALC à la base de données MySQL?



Publications connexes