Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
libreoffice_mysql [Le 23/07/2017, 12:39] – [Avec l'extension libreoffice-mysql-connector] L'Africainlibreoffice_mysql [Le 10/12/2020, 19:04] (Version actuelle) – précision connexion arverne73
Ligne 1: Ligne 1:
 +{{tag>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]]
 +  * [[#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.
 +
 +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"
 +  - A l'écran suivant, sélectionner "Connecter directement"
 +  - 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
 +
 +Ce type de connexion connaît parfois des bugs pour accéder à certaines tables.
 +
 +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=====
 +[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>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 [[https://bugs.launchpad.net/ubuntu/+source/libreoffice/+bug/1577316|ici]]. Comme indiqué en ce lieu le JDBC fonctionne.
 +
 +Alternative : ajouter une extension que vous pouvez télécharger à [[https://www.arielch.org/aoo/aoo-my-sdbc/|MySQL Driver]].
 +
 +===== Avec un pilote JDBC =====
 +[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>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.
 +
 +<note important>LibreOffice Base s'installe avec le support du pilote JDBC comme une dépendance, paquet [[https://packages.ubuntu.com/xenial/libreoffice-base-drivers|libreoffice-base-drivers]]
 +
 +Le paquet [[https://packages.ubuntu.com/xenial/libha-jdbc-java|libha-jdbc-java]] ne fournit aucun pilote JDBC mais une abstraction de haute disponibilité à toute connectivité JDBC.
 +</note>
 +
 +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 =====
 +
 +<note warning>À l'heure actuelle cette solution ne fonctionne pas, si quelqu'un trouve les bons paramètres, son aide est la bienvenue.</note>
 +
 +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]] : <code>gksudo ODBCManageDataSourcesQ4</code>
 +  * Allez dans //Advanced//,
 +  * Pouis dans l'onglet //drivers//, bouton //add//: FIXME pour toute cette partie
 +<file>
 +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
 +</file>
 +Laissez le reste par défaut et fermez **ODBCManageDataSourcesQ4**.
 +
 +On va maintenant lancer **ODBCManageDataSourcesQ4** en tant qu'utilisateur : <code>ODBCManageDataSourcesQ4</code> 
 + 
 +Onglet //user dns//, bouton //add//, sélectionnez le pilote nommé //Mysql//, puis cliquez sur le bouton //OK//
 +<file>
 +name: nom_de_la_base
 +server: localhost
 +database: nom_de_la_base
 +</file>
 +
 +Laissez le reste par défaut et fermez **ODBCManageDataSourcesQ4**.
 +
 +
 +===== Connection à la base de donnée=====
 +
 +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|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]]
 +
 +----
 +
 +//Contributeurs : [[:utilisateurs:Yeffries]], [[:utilisateurs:l_africain|L'Africain]], [[:utilisateurs:Poupoul2]]//