Connexion à une base de donnée Mysql sous LibreOffice

Cette page présente la mise en place d'une connexion entre une base MySQL et LibreOffice.

Description des logiciels utilisés :

  • Mysql est un serveur de bases de données relationnelles SQL.
  • ODBC : format de Microsoft permettant la communication entre des clients et la plupart des SGBD.
  • LibreOffice, le logiciel libre de bureautique de référence.

Vous pouvez vous connectez avec Base de trois manières:

Depuis les versions 6 de LibreOffice, un connecteur est intégré à l'application. Il est donc inutile d'installer une extension ou d'activer les pools de connexions dans les préférences.

A la création du fichier Base, il faut successivement :

  1. Choisir la 3e option "Connecter un base de données existante" et sélectionner "MySQL" ou "MySQL/MariaDB"
  2. A l'écran suivant, sélectionner "Connexion directe (connecteur MariaDB C)"
  3. Compléter l'écran suivant. Si la base MySQL est installée sur le même poste, le serveur est "localhost", sinon l'adresse IP du poste serveur. Le port est 3306
  4. Compléter les 2 écrans suivants non spécifiques
Ce type de connexion connaît des bugs entraînant un gel de LibreOffice ou une fermeture brutale, surtout avec le code Basic. Un message du forum Bugzilla (voir#16) indique clairement que ce connecteur n'est pas adapté à MySQL mais prévu pour MariaDB. D'après les utilisateurs d'autres forums, la connexion directe est plus fiable avec OpenOffice. En cas de difficulté, changer la connexion pour MySQL JDBC qui est plus lente mais fiable(voir ci-dessous 4.2).

Il n'est pas simple non plus de remplacer une connexion d'un autre type pour utiliser celle-là : nécessité de créer une nouvelle base et réintégrer les différents éléments (formulaires, requêtes, rapports, code).

Installez le paquet libreoffice-mysql-connector qui est une extension de connexion MariaDB/MySQL pour LibreOffice. Si vous avez des problèmes avec ce pilote sous Ubuntu 16.04 voir ici. Comme indiqué en ce lieu le JDBC fonctionne.

Alternative : ajouter une extension que vous pouvez télécharger à MySQL Driver.

Avec un paquet

Cette solution n'est plus disponible dans les versions actuellement supportées. Voir la 2e solution.

Installez le paquet libha-jdbc-java. Dans Libreoffice, avant de pouvoir utiliser un pilote JDBC, vous devez ajouter son chemin de classe. Choisissez Outils → Options → LibreOffice → Avancé, et cliquez sur le bouton Chemin de classe. Naviguez jusqu'à l'archive qui se trouve dans /usr/share/java/mysql-connector-java-5.1.28.jar. Après avoir ajouté les informations de chemin, redémarrez LibreOffice.

LibreOffice Base s'installe avec le support du pilote JDBC comme une dépendance, paquet libreoffice-base-drivers

Le paquet libha-jdbc-java ne fournit aucun pilote JDBC mais une abstraction de haute disponibilité à toute connectivité JDBC.

Une procédure détaillée pour lire une base access avec le pilote JDBC peut se trouver ici.

En utilisant le pilote JDBC inclus

A la création d'un fichier LO Base, au 2e écran, choisir « Connecter en utilisant JDBC (Java Database Connectivity) ».

Pour un fichier Base existant, aller au menu Édition → Base de données → Type de connexion. Dans la liste déroulante « Type de base de données », choisissez « MySQL(JDBC) ».

A l'écran suivant, pour « Classe de pilote JDBC MySQL », indiquer : com.mysql.jdbc.Driver

Remplir les autres informations quant à l'adresse du serveur, le nom de la base de données et de l'utilisateur.

Enfin, on peut cliquer sur le bouton « Tester la classe » pour vérifier que la connexion marche (à condition que les paragraphes suivants aient été réalisés).

En effet, pour que la connexion fonctionne il faut encore ajouter un Chemin de classe dans les paramètres Java de LibreOffice Outils → Options → LibreOffice → Avancé puis cliquez sur le bouton « Chemin de classe ».

Auparavant, télécharger le connecteur sur le site de MySQL. Il s'agit d'une archive au format .deb ; elle ne va pas être utilisée telle quelle. Il faut l'ouvrir avec un gestionnaire d'archives et naviguer vers /data.tar.zst/./usr/share/java/ pour trouver le fichier mysql-connector-java-8.0.29.jar. C'est ce fichier qu'il faut extraire et enregistrer sur votre ordinateur puis indiquer son emplacement dans la boite de dialogue « Chemin de classe ».

À l'heure actuelle cette solution ne fonctionne pas, si quelqu'un trouve les bons paramètres, son aide est la bienvenue.

Commencez par installer les paquets libmyodbc et unixodbc-bin.

Maintenant lancez Unixodbc avec les droits d'adminstration, pour créer le pilote. Entrez la comamnde suivante dans un terminal :

gksudo ODBCManageDataSourcesQ4
  • Allez dans Advanced,
  • Pouis dans l'onglet drivers, bouton add: FIXME pour toute cette partie
name: Mysql
description: Mysql driver
driver:
ou en 64 bits:  /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
setup: /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
setup64

Laissez le reste par défaut et fermez ODBCManageDataSourcesQ4.

On va maintenant lancer ODBCManageDataSourcesQ4 en tant qu'utilisateur :

ODBCManageDataSourcesQ4

Onglet user dns, bouton add, sélectionnez le pilote nommé Mysql, puis cliquez sur le bouton OK

name: nom_de_la_base
server: localhost
database: nom_de_la_base

Laissez le reste par défaut et fermez ODBCManageDataSourcesQ4.

Dans LibreOffice :

  • Onglet Fichier → Nouveau → Base de données,
  • Cochez la case Se connecter à une base de données existante, puis sélectionnez Mysql dans la liste au-dessous,
  • Cliquez sur le bouton Suivant,
  • Si vous avez installé:
    • L'extension, choisissez Connecter directement,
    • Si vous avez activé le pilote ODBC choisissez Connection utilisant ODBC,
    • Si vous avez activé le pilote JDBC choisissez Connection utilisant JDBC,
  • Cliquez sur le bouton Suivant
  • Dans le cas d'une connexion directe et JDBC remplissez les champs comme suit:
    • Nom de la base de données, entrez le nom de votre base de donnée;
    • "Serveur", entrez localhost, si la base se trouve sur votre pc, ou l'adresse IP d'un autre serveur,
  • Cliquez sur le bouton Suivant,
  • Tapez le nom d'utilisateur que vous utilisez pour accéder à votre base, et suivant la configuration de votre serveur MySQL, cochez ou non Password required,
  • Cliquez sur le bouton Terminer.

Il faut bien-sûr que l'utilisateur existe dans la configuration de MySQL (ou utilisez phpMyAdmin). Si l'accès se fait à partir d'un autre poste, il faut là aussi créer un utilisateur spécifique avec les privilèges adéquats et configurer MySQL pour un droit d'accès de l'extérieur (voir sur la page MySQL).

Ça y est, vous avez maintenant accès à votre base MySQL sous LibreOffice.

  • Pour accéder rapidement aux bases de données, tapez sur la touche F4 sous LibreOffice.
  • Pour supprimer une base de données sous LibreOffice : onglet outils/options → LibreOffice Base → base de données

Contributeurs : Yeffries, L'Africain, Poupoul2

  • libreoffice_mysql.txt
  • Dernière modification: Le 09/05/2023, 19:37
  • par arverne73