{{tag>Noble Jammy SGBD bureautique}} ---- ====== 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. ===== Introduction ===== Description des logiciels utilisés : * [[:Mysql]] est un serveur de bases de données relationnelles SQL. * [[wpfr>ODBC]] : format de [[wpfr>Microsoft]] permettant la communication entre des clients et la plupart des [[wpfr>SGBD]]. * [[:LibreOffice]], le logiciel libre de bureautique de référence. Vous pouvez vous connectez avec Base de trois manières: * [[#Directement]] * [[#Avec l'extension libreoffice-mysql-connector|Avec une extension pour libreoffice]] (ancienne méthode) * [[#Avec le pilote JDBC]] * [[#Avec le pilote ODBC]] =====Directement===== 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. Cette connexion n'est plus disponible par défaut après une installation de LibreOffice Base utilisant les paquets fournis par Ubuntu (au moins depuis Noble). Si vous souhaitez malgré tout en disposer, vous devez installer un paquet supplémentaire avec la ligne de commande suivante : sudo apt install libreoffice-sdbc-mysql 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 [[https://bugs.launchpad.net/ubuntu/+source/libreoffice/+bug/1972820 |forum Bugzilla (voir#16)]] indique 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. La connexion à MySQL via JDBC, un peu plus lente, est l'alternative fiable. Voir ci-dessous 4. A la création du fichier Base, il faut successivement : - Choisir la 3e option "Connecter un base de données existante" et sélectionner "MySQL" ou "MySQL/MariaDB" - A l'écran suivant, sélectionner "Connexion directe (connecteur MariaDB C)" - 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 - Compléter les 2 écrans suivants non spécifiques 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). =====Avec l'extension libreoffice-mysql-connector===== Cette extension n'est plus disponible depuis la version Noble ! [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>libreoffice-mysql-connector]]** qui est une extension de connexion MariaDB/MySQL pour LibreOffice. ===== Avec le pilote JDBC ===== Méthode recommandée. 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.cj.jdbc.Driver'' Remplir les autres informations quant à l'adresse du serveur, le nom de la base de données et de l'utilisateur (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). 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 [[https://dev.mysql.com/downloads/connector/j/|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 (comme File Roller) et naviguer vers /usr/share/java/ (chemin constaté pour la version 9.5 en décembre 2025) pour trouver le fichier //mysql-connector-j-x.x.x.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 ». (Si vous installer directement l'archive .deb, le même script java sera copié dans /usr/share/java/). Une procédure détaillée pour lire une base Access® avec le pilote JDBC peut se trouver [[lire_une_base_access|ici]]. ===== Avec un pilote ODBC ===== À l'heure actuelle cette solution ne fonctionne pas, si quelqu'un trouve les bons paramètres, son aide est la bienvenue. Commencez par [[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt>libmyodbc]]** et **[[apt>unixodbc-bin]]**. Maintenant lancez **Unixodbc** avec les [[:Sudo|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**. ===== Connection à la base de donnée===== Dans LibreOffice, utiliser les étapes ci-dessus. * Dans le cas d'une connexion directe et JDBC remplissez aussi les champs : * //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, port 3306 * 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|MySQL]] (ou utilisez [[phpmyadmin|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#connexions_entrantes|MySQL]]). Ça y est, vous avez maintenant accès à votre base MySQL sous LibreOffice. ===== Notes ===== * 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// ===== Voir aussi ===== * Page principale de [[:LibreOffice]] * La page de création d'une base de données dans la [[https://books.libreoffice.org/en/BG73/BG7302-CreatingADatabase.html#toc9 |documentation de LO 7.3 (en)]] qui reprend toutes les connexions. * Le [[https://wiki.documentfoundation.org/images/4/43/GuideBase64.pdf |guide 6.4 en français]] avec les mêmes informations à la page 70. ---- //Contributeurs : [[:utilisateurs:Yeffries]], [[:utilisateurs:l_africain|L'Africain]], [[:utilisateurs:Poupoul2]]//