menu
  Home  ==>  articles  ==>  bdd  ==>  mysql  ==>  delphi_mysql_installation   

Delphi MySql Installation - John COLIBRI.


1 - MySql et Delphi

MySql a été créé en 1995, et de nombreuses versions ont été publiées. La plus récente semble être la version 5.7.

Le moteur de bases de données MySql est utilisable avec Delphi depuis la fin des années 1990.

Il existe de nombreuses façon de gérer des bases de données MySql avec Delphi:

  • en utilisant directement LIBMYSQL.DLL
  • en utilisant des composants d'accès
    • via un pilote ODBC
    • avec les composants ADO, Zeos, dbExpress, ou l'un des nombreux composants non standards (des open source, ou des composants commerciaux tels que ceux de DevArt)
Le principal problème est alors d'arriver à utiliser une version de MySql avec une version de Delphi et un jeu de composants d'accès.



Ayant à développer une famille de projets pour lesquels le client souhaitait utiliser MySql, j'ai été amené à installer le serveur et le client MySql et à l'utiliser depuis Delphi.

Cet article décrit

  • comment nous avons installé MySql
  • comment tester cette installation
  • un exemple simple de lecture utilisant ADO


Notez que cet article a été écrit en 2011, et utilise
  • Mysql 5.5
  • Delphi 6
  • Windows XP



2 - Installation MySql

2.1 - Téléchargement

Nous avons utilisé les lien suivants du site mysql.org:
  • pour le serveur
      http://dev.mysql.com/downloads/mysql/
  • pour le pilote ODBC
      http://dev.mysql.com/downloads/connector/odbc/5.1.html#downloads


Voici les fichiers que nous avons téléchargés:

01_mysql_download



2.2 - Installation MySql

Pour installer MySql:
   cliquez sur mysql-5.5.11-win32.msi
   l'installateur est présenté:

02_mysql_setup

   cliquez "Next", puis cochez "Accept", puis cliquez "Typical" et "Install"
   le dialogue présente le produit :

03_mysql_enterprise

   cliquez "Next", "Next" et "Finish"

   le wizzard de configuration est présenté :

04_mysql_configuration_wizzard

   selectionnez la configuration détaillée et cliquez "Next"

   le type de configuration est demandé :

06_mysql_developer_configuration

   selectionnez la configuration détaillée et cliquez "Next"

   le type de serveur est demandé :

07_mysql_multifunctional_configuration

   cliquez "Next"

   le chemin est demandé :

08_mysql_installation_path

   cliquez "Next"

   le nombre de connection est demandé :

09_mysql_connection_count

   cliquez "Next"

   le paramétrage réseau est demandé :

10_mysql_tcp_ip

   cliquez "Next"

   le jeu de caractères est demandé :

11_mysql_character_set

   cliquez "Next"

   l'utilisation avec un service est demandé :

12_mysql_as_service

   cliquez "Next"

   le mot de passe de root est demandé :

13_mysql_root_password

   tapez "mypass", "mypass", cochez "accès distant" et cliquez "Next"

   lancez la configuration

14_mysqll_configure

   cliquez "execute"

   la configuration est terminée

14_mysqll_configure



2.3 - Vérification de l'installation

Le Setup a bien créé un nouveau répertoire pour MySql:

17_mysqll_folder



Nous pouvons aussi vérifier que le service est bien installé
   sélectionnez "panneau de configuration | admininistration tools | Services"
   le service MySql est bien présent et lancé

18_mysqll_service



Finalement le menu permet de lancer mysql en mode ligne de commande:*

19_mysqll_commandline_menu




3 - MySql en mode ligne de commande

3.1 - Lancement manuel du mode ligne de commande

Pour lancer le mode ligne de commande
   lancez "Start | Programs | Accessories | command prompt" (CMD.EXE)

19_mysqll_commandline_menu

   déplacez-vous dans le répertoire BIN de MySql:

21_mysqll_cd_mysql

   connectez vous en tapant

mysql -u root -p <ENTREE>
mypass <ENTREE>

   le prompt de MySql est affiché:

22_mysqll_command_line_prompt

   à titre d'exemple, tapez

show databases; <ENTREE>

   les bases disponibles sont affichées:

23_mysqll_show_databases



3.2 - Lancement depuis le menu

Pour lancer MySql, il a fallu nous positionner dans le répertoire BIN. Nous pouvons aussi:
  • soit ajouter le chemin vers BIN dans le PATH Windows
  • soit lancer MySql depuis le menu démarrer (cf ci-dessus)



4 - Installation du pilote ODBC MySql

4.1 - Lancement .MSI

Nous exécutons le programme d'installation du .MSI:
   lancez mysql-connector-odbc-5.1.8-win32.msi

   le Setup est affiché

30_odbc_setup

   cliquez "Next"

   demande de type est affichée

31_odbc_type

   cliquez "Next"

   les paramètres sont récapitulés

32_odbc_presentation

   cliquez "Install"

   l'installation est terminée

33_odbc_installation_completed

   cliquez "Finish"


4.2 - Vérification de l'installation ODBC

Nous pouvons utiliser le manager ODBC pour vérifier cette installation:
   sélectionnez "Panneau de contrôle | Administrative tools | Data Source ODBC"

34_odbc_manager

   le gestionnaire présente les pilotes installés, dont notre pilote MySql :

35_odbc_instaled_drivers





4.3 - Création d'un Dsn ODBC

Pour une utilisation avec Ado et Delphi, rien d'autre n'est nécessaire. Pour certains autres composants d'accès, il faut créer un "user Dsn", ce que vous pouvez faire à l'aide de l'onglet "User Dns" du manager Odbc
   sélectionnez l'onglet "User Dsn" (ou System Dsn)

   les Dsn actuellement définis sont affichés

mys_03_available_drivers_for_dsn

   pour créer un Dsn MySql, cliquez "Add..."

   les pilotes disponibles sont à nouveau affichés

mys_03_available_drivers_for_dsn

   Sélectionnez le pilote MySql et cliquez "Finish"

   un dialogue MySql permettant de définir les paramètres du Dsn est affiché:

mys_04_mysql_connector_dsn_dialog

   remplissez les paramètres
  • un nom qui désignera le dsn "my_source"
  • l'adresse IP du Serveur : 127.0.0.1
  • l'utilisateur "root" et mot de passe "root"
  • la base de données de démonstration "plaincart"
   les paramètres sont définis

mys_05_mysql_connector_dsn_parameters

   vérifiez la connexion en cliquant "Test"

   le test est réussi

setup_mysql_source



Nous pourrions donc utiliser ce nom de Dsn "my_source" pour paramétrer un composant de connexion Ado, par exemple.




5 - Installation du Client MySql

Si le projet Client est sur un PC différent du PC sur lequel est installé le Serveur MySql, il faut
  • installer le Client MySql sur le PC Client. Ici il s'agit du pilote ODBC MySql
  • ouvrir un accès dans le Firewall du Serveur pour que le Client puisse accéder au Serveur MySql


5.1 - Installation du Pilote ODBC sur le poste client

La procédure est la même que l'installation du pilote ODBC sur le poste Serveur.



5.2 - Ouverture d'un accès Serveur

Sur le poste Serveur, nous ouvrons un accès ainsi:
   ouvrez le Control Panel, et sélectionnez "Windows FireWall"

mys__66_control_panel_windows_firewall

   le dialogue de paramétrage du firewall est affiché

67_windows_firewall_dialog

   sélectionnez l'onglet "Exceptions"

   les accès à travers le firewall existants sont affichés

change_firewall_settings

   ouvrez un nouvel accès en cliquant "add a port"

   le dialogue de définition du nouvel accès est présenté.

   Il faut fournir un nom pour désigner ce port, et le numéro du port du Serveur MySql qui par défaut est 3306.

Tapez par conséquent
  mysql_server
  3306

   voici le dialogue rempli

open_3306_port

   cliquez "Ok"

   le nouvel accès a bien été ajouté :

3306_port_is_opened

   quittez ce dialogue en cliquant "Ok"


5.3 - Vérification du Client MySql

Pour vérifier que le Client a bien accès au Serveur MySql, nous créons un Dsn sur le PC Client, ce qui permet de tester la connexion:

Les étapes sont les mêmes que pour le DSN défini côté Serveur ci-dessus, sauf qu'il faut à présent utiliser l'adresse IP du Serveur. Dans notre cas 192.168.1.20.

Donc:
   les paramètres du Dsn sont:

mysql_odbc_source

   et ce nouveau Dsn est bien créé :

created_mysql_odbc_source

   vérifiez la connexion par "Test"



6 - MySql et Delphi

6.1 - Accès à MySql

Nous avons de très nombreuses possibilités pour gérer une base MySql depuis Delphi
  • utiliser une .DLL d'importation qui appelle les API MySql
  • utiliser des jeux de composants standards
    • le BDE et ODBC
    • ADO et ODBC
    • dbExpress, dans la mesure où le pilote dbExpress sait gérer notre version MySql
    • ADO.NET
    • plus récemment, AnyDac devenu FireDac
  • utiliser des composants Open Source
    • ZEOS, qui est un jeu de composants similaire à BDE, ADO ou dbExpress (jeu de composants multi-moteur Sql, dont MySql)
    • il semble qu'il existe aussi des composants spécifiques MySql sur SourceForge
  • utiliser des composants commerciaux (devArt)


6.2 - Utilisation d'Ado

Nous avons choisi ici les composants ADO, qui passent par le pilote ODBC fourni par MySql. Pour cela:
   lancez une application Delphi
   de l'onglet ADO de la palette, posez un _tAdoConnection sur la tForm
   dans l'Inspecteur d'Objet, sélectionnez ConnectionString et tapez la chaîne de connection propre à votre version MySql. Dans notre cas il s'agit de :

DRIVER={MySQL ODBC 5.1 Driver}; SERVER=localhost; DATABASE=test; UID=root; PASSWORD=mypass;OPTION=3;

   basculez LoginPrompt sur False

   basculez Connected sur True

   la connection est établie

36_delphi_ado



6.3 - Vérification de la connection par Ado

Comme nous avons définis des Dsn, nous pouvons aussi les utiliser pour vérifier la connexion en utilisant le dialogue Windows de définition de la connection string.

Voici comment procéder:
   de l'onglet ADO de la palette, posez un second tAdoConnection sur la tForm
   dans l'Inspecteur d'Objet, sélectionnez ConnectionString et cliquez sur l'ellipse "..."
   le dialogue de paramétrage Ado de la connection string est présenté

68_ado_connection_string_dialog

   cliquez sur "Build"

   le dialog de paramétrage OleDb est présenté

70_oledb_parameter_dialog

   sélectionnez "OleDb Provider" et cliquez "Next"

   un dialogue de paramétrage est présenté :

71_dsn_properties

   ouvrez la combo box des Dsn, et sélectionnez

refresh_odbc_source

   ajoutez l'utilisateur "root", "root" et sélectionnez une base

enter_mysql_database

   puis cliquez "tester la connexion"

   le test réussit

test_mysql_connection




7 - Commentaires et Liens MySql

En essayant d'utiliser ADO avec les composants Delphi 6, nous avons rencontré des problèmes avec les décimales des réels. Il fallait soit modifier des paramètres de fichiers .INI de MySql, soit utiliser un autre jeu de composants d'accès. Finalement nous avons sélectionné "Dac for MySql" de microOLAP, qui résolvait ce problème.

Mentionnons aussi que MySql ne serait pas ma préférence comme base de donnée:

  • nombreuses versions du moteur (avec ou sans transactions)
  • gestion des réels
  • dates sans millisecondes


Voici quelques liens :

Comme d'habitude:
  • nous vous remercions de nous signaler toute erreur, inexactitude ou problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections qui en résulteront pourront aider les prochains lecteurs
  • tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le même sujet seront de même les bienvenus à jcolibri@jcolibri.com.
  • plus simplement, vous pouvez taper (anonymement ou en fournissant votre e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en cliquant "envoyer" :
    Nom :
    E-mail :
    Commentaires * :
     

  • et si vous avez apprécié cet article, faites connaître notre site, ajoutez un lien dans vos listes de liens ou citez-nous dans vos blogs ou réponses sur les messageries. C'est très simple: plus nous aurons de visiteurs et de références Google, plus nous écrirons d'articles.



8 - L'auteur

John COLIBRI est passionné par le développement Delphi et les applications de Bases de Données. Il a écrit de nombreux livres et articles, et partage son temps entre le développement de projets (nouveaux projets, maintenance, audit, migration BDE, migration Xe_n, refactoring) pour ses clients, le conseil (composants, architecture, test) et la formation. Son site contient des articles avec code source, ainsi que le programme et le calendrier des stages de formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et UML qu'il anime personellement tous les mois, à Paris, en province ou sur site client.
Created: jan-04. Last updated: mar-2020 - 250 articles, 620 .ZIP sources, 3303 figures
Contact : John COLIBRI - Tel: 01.42.83.69.36 / 06.87.88.23.91 - email:jcolibri@jcolibri.com
Copyright © J.Colibri   http://www.jcolibri.com - 2001 - 2020
Retour:  Home  Articles  Formations  Développement Delphi  Livres  Pascalissime  Liens  Download
l'Institut Pascal

John COLIBRI

+ Home
  + articles_avec_sources
    + bases_de_donnees
      + programmation_oracle
      + interbase
      + sql_server
      + firebird
      + mysql
        – mysql_dbx_odbc
        – mysql_installation
      + xml
      – paradox_via_ado
      – mastapp
      – delphi_business_objects
      – clientdataset_xml
      – data_extractor
      – rave_report_tutorial
      – visual_livebindings
      – migration_bde
    + web_internet_sockets
    + services_web_
    + prog_objet_composants
    + office_com_automation
    + colibri_utilities
    + uml_design_patterns
    + graphique
    + delphi
    + outils
    + firemonkey
    + vcl_rtl
    + colibri_helpers
    + colibri_skelettons
    + admin
  + formations
  + developpement_delphi
  + présentations
  + pascalissime
  + livres
  + entre_nous
  – télécharger

contacts
plan_du_site
– chercher :

RSS feed  
Blog