Ce document présente la façon d'administrer le contenu d'une base de données MySQL sans recourir à phpMyAdmin. Par extension, la méthode sera la même s'il s'agit de supporter d'autres moteurs de stockage comme PostgreSQL par exemple. La condition unique est de disposer d'un pilote ODBC.
L'Open DataBase Connectivity (ODBC) est une interface standardisée qui permet de faire un pont entre un logiciel et un moteur de base de données, à l'instar d'une boîte de vitesse entre le moteur et le conducteur.
Le pilote est associé à un type de serveur SQL. Ici, ce sera un serveur MySQL dont l'installation sera présumée déjà réalisée. Ce moteur est apprécié, car il sert à faire fonctionner la plupart des sites web sur Internet. Il a également l'avantage de fonctionner à moindre coût sur de nombreuses plateformes : Windows, Linux, BSD, Solaris...
Le connecteur MySQL ODBC est disponible gratuitement et doit être installé sur tous les ordinateurs des utilisateurs. Comme il s'agit d'installer une librairie qui sera réutilisée par la fonctionnalité ODBC, l'installateur sera autonome et pas très bavare. C'est normal !
Ensuite, il vous reviendra de choisir entre Microsoft Access payant ou LibreOffice Base gratuit, afin d'exploiter le connecteur.
Une connexion DSN (data source name) contient les informations sur la connexion au serveur. On y définit les serveurs, les identifiants, ainsi que les options techniques.
En fonction de la version d'Access, l'accès au gestionnaire DSN se fait par "Fichier > Importer > Lier une table" ou par "Données externes > Section Importer > Plus > Base de données ODBC > Lier à la source". Dans l'assistant qui s'affiche, il faut aller dans l'onglet "Source de données machine", Nouveau, "Système", "MySQL ODBC 5.1 Driver" et Terminer.
Dans le logiciel de LibreOffice, il faut créer une nouvelle base de données. Alors choisir de "Se connecter à une base de données existante" via "ODBC". Dans l'étape suivante, vous pouvez "Parcourir" puis "Gérer" les connexions.
Pour aller plus vite, vous pouvez aussi exécuter le fichier "odbcconfig.exe" qui se trouve dans le dossier "LibreOffice\Basis\program".
Dans les "Sources de données système" (pas celles de l'Utilisateur), vous ajoutez la connexion comme expliqué dans le paragraphe précédent.
La fenêtre de connexion MySQL qui s'ouvre est le fameux connecteur ODBC pour MySQL que vous avez installé sans jamais avoir pu le voir.
Vous remplissez les informations de connexion de votre DSN. Le nom obligatoire servira pour retrouver facilement toutes les informations de connexion. Si vous ne mettez pas toutes les informations, elles seront demandées plus tard, mais ce n'est pas nécessairement le but.
Comme la configuration DSN est stockée dans la base de registre, un fichier REG permettra de la répliquer facilement sur d'autres ordinateurs.
Les tables listées par la connexion sont celles de la base de données spécifiée dans les options du connecteur ODBC.
Dans LibreOffice, les tables sont toutes rappatriées par défaut pour être accessibles immédiatement.
Dans Access par contre, il faut sélectionner les tables qui nous intéressent. Elles sont alors liées dans une mémoire tampon, ce qui nécessite une actualisation manuelle via le "Gestionnaire de tables" dès que la structure est modifiée. On peut s'en rendre compte à l'aide d'un message d'erreur précisant l'échec de la connexion sur une table qui fonctionnait très bien auparavant.
Pour modifier les tables, il faut absolument qu'elles soient dôtées d'une clé primaire. Elle permet d'identifier un enregistrement de façon unique. Si Access vous demande cette clé, c'est qu'elle n'existe pas. Toute modification est mémorisée dès que vous changez de ligne.
Comme le connecteur ne permet pas de créer des tables ou de modifier les droits des utilisateurs, ces tâches devront toujours être gérées dans phpMyAdmin ou l'utilitaire en ligne de commande de votre serveur SQL.
Une fois les bonnes tables liées, l'éditeur intégré de requêtes SQL vous permettra de concevoir des commandes de façon rapide, avec un aperçu en temps réel. Exemple :
SELECT punbb_posts.poster_id, Count(*) AS Total FROM punbb_posts GROUP BY punbb_posts.poster_id
MySQL est une base de données relationnelle. L'usage d'Access ou de Base vous permettra d'exploiter à fond les jointures sans vous mélanger les pinceaux. Le créateur visuel est flexible pour cette tâche.
Pour que votre serveur SQL soit accessible sur Internet (donc consultable avec Access/Base), le serveur :
La connexion d'Access n'étant pas sécurisée, les identifiants et le contenu circulent en clair sur les réseaux. Il est donc mieux d'utiliser phpMyAdmin via HTTPS.
Certains se demandent si on peut accéder directement à distance aux tables SQL des pages persos de l'hébergement Free. La réponse est bien évidement négative !
Les bases de données sont trop sensibles pour que l'accès soit possible à quiconque publiquement à travers Internet, d'autant plus si c'est par ODBC. C'est inutile et il serait aussi trop simple de les mettre hors-service en les saturant de demandes. Voici un petit schéma fictif illustrant la situation :
Pour plus d'infos concernant les réseaux, lire comment connecter des machines en réseau.
Il faut définir une clé primaire dans la structure de la table, pas seulement dans le logiciel.
Quand vous essayez de modifier un enregistrement avec Access, le message suivant apparaît et vous perdez les données que vous venez de saisir :
Il est possible de stocker des dates nulles dans MySQL, comme par exemple "0000-00-00" ou "2012-02-00". Le message semble être lié à l'existance de ces valeurs illégales, même si vous ne les modifiez pas.
Les formats tordus (date, heure, décimales...) peuvent être transformés en chaînes de caractères pour lever le problème. Cette solution palliative n'est pas idéale, car vous perdrez la fonctionnalité de calendrier dans phpMyAdmin si votre champ n'est plus une date par exemple.
Plus efficacement, dans les propriétés de la connexion ODBC, cliquez sur "Détails" et cochez "Return matched rows instead of affected rows". Il est probable de devoir aussi cocher l'option "Enable dynamic cursors".
À l'installation du connecteur MySQL ODBC 5.3, il est possible que le pilote ne s'affiche pas et que donc vous ne puissiez pas ajouter de connexion ODBC pour extraire les données vers Access et/ou Excel.
La particularité surgit lorsque vous avez un ordinateur 64 bits (avec un driver 64 bits) et que vous l'exploitez avec une application 32 bits (dont Access ou Excel).
Il existe 2 versions du gestionnaire de configuration ODBC et c'est le mauvais qui est accessible dans le panneau de configuration :
Il vous faut lancer le gestionnaire 64 bits, puis ajouter une connexion système. Elle sera alors utilisable dans Access/Excel 32 bits.
Source de cette information en anglais.
Dernière modification le 28 juillet 2020 à 00:20