INGESUP - Paris
Bases de données – 1
SQL - MySQL – Cours et TP 0
Introduction et Installation de MySQL sur PC
Site officiel MySQL : http://www-fr.mysql.com/ Zone pour les développeurs : http://dev.mysql.com/ Téléchargement : http://dev.mysql.com/downloads/
Documentation MySQL : http://dev.mysql.com/doc/refman/5.0/fr/ http://dev.mysql.com/doc/refman/5.6/en/
http://dev.mysql.com/doc/index.html
Mémo SQL : http://www.volubis.fr/bonus/SQL_memo.htm
La Base de Données Open Source la plus Populaire au Monde
Bertrand LIAUDET
SOMMAIRE
SOMMAIRE 1 INTRODUCTION 3 1. Objectifs généraux 3 2. Réquisits 33. Généralités sur les bases de données 4
4. Les 3 objectifs majeurs d’une BD 6
5. Généralités sur les SGBD 8
8. SGBD-R et SQL 11
INSTALLATION DE MYSQL SOUS XP 14
Les produits MySQL 14
Téléchargement : http://dev.mysql.com/ 17
Résultats de l’installation 19
Utilisation 21
INSTALLATION DE MYSQL WORKBENCH 23
MySQL Work bench 23
INSTALLATION D’UN ENVIRONNEMENT PHP-MYSQL 25
Les environnements MySQL 25
TP N°0 : INSTALLATION DE MYSQL SOUS WINDOWS 26
Exercice 01 : Installer MySQL 26
Exercice 02 : Prise en main de l’installation, du serveur et du client 26 Edition : septembre 2009 – Mise à jour juillet 2012
INTRODUCTION
PRINCIPALES NOTIONS
BD Intégrité des données
SGBD Architecture Client-Serveur
SGBD-R SQL
1. Objectifs généraux
L’objectif de ce cours est de faire comprendre ce qu’est une base de données (ce qui n’a rien d’évident), et particulièrement une base de données relationnelle, de comprendre comment on la fabrique et comment on s’en sert, c’est-à-dire comment on stocke les données et comment on consulte les données de la base de données.
Pour cela nous serons amenés à utiliser le langage SQL et un SBBD. Le langage SQL étant standard, on pourra utiliser à peu près indifféremment MySQL, PostgreSQL, ORACLE, SQL Server. Les versions (ORACLE 10, ORACLE 11, SQL Server 2005, SQL Server 2008, MySQL 4, MySQL 5, etc.) auront peut d’impact sur la base de l’apprentissage du langage SQL.
2. Réquisits
Il n’est pas nécessaire de connaître les langages de troisième génération (Pascal, C, C++, php, etc…) ni l’algorithmique.
Il vaut mieux (mais ce n’est pas obligé) connaître l’architecture et le fonctionnement général d’un ordinateur : unité centrale, processeur, périphériques d’entrée et de sortie, bus, mémoire, ROM (Read Only Memory, mémoire morte), RAM (Read Access Memory, mémoire vive), disque dur, répertoires, fichiers, logiciels, système d’exploitation.
Architecture des ordinateurs :
ROM SE R A M SE Processeur
Rappelons que quand l’ordinateur démarre, le petit programme codé dans la ROM va chercher le logiciel « système d’exploitation » (XP, LINUX, UNIX, MacOS, etc… SE sur le schéma) sur le disque dur et le recopie sur la RAM. L’utilisateur communique alors avec le système d’exploitation. Le système d’exploitation offre trois grands types de fonctionnalité : la gestion des fichiers (dir, cd, grep, etc.), la gestion des périphériques et le lancement des logiciels.
3. Généralités sur les bases de données Définition générale d’une base de données Présentation
La notion de base de données n’est pas facile à définir précisément. On peut toutefois en donner une définition intuitive très large :
Une base de données est constituée de deux éléments :
un regroupement de données (d’informations) en grand nombre. Ces données décrivent (représentent) des objets du monde réel.
un ensemble d’outils de gestion permettant de consulter ces données et les objets qu’elles représentent, mais aussi d’en ajouter, d’en retirer et d’en modifier : c’est le SGBD (système de gestion de la base de données)
Remarques
Une base de données n’est pas constituée uniquement par des objets du monde réel mais aussi par leurs représentations.
Une base de données n’est pas nécessairement informatisée. Exemples
Une bibliothèque gère est une base de données. Les livres et les adhérents sont les objets du monde réel. Il existe un fichier avec les informations représentant tous les livres (numérotation, classement, etc.), tous les adhérents (nom, adresse, etc.), tous les emprunts, et aussi des fichiers pour les recherches bibliographiques. Ces outils sont les outils de gestion de la BD.
Un magasin avec ses articles en rayon gère une base de données. Les articles sont les objets du monde réel.
Un disque dur avec ses fichiers est une base de données. Les fichiers sont les objets du monde réel. Le système d’exploitation permet de manipuler
Un cerveau (plus ou moins rempli !) est une base de données. Les connaissances sont des « objets » du monde réel. L’accès aux connaissances est plus ou moins efficace !
Définition d’une base de données informatique Présentation
Une base de données informatique est une base de données dont les données et les outils de gestion sont informatisés. Une base de données informatique est constituée de deux éléments :
un regroupement de données informatiques en grand nombre. Ces données décrivent des objets du monde réel.
un ensemble d’outils de gestion informatisés permettant de consulter ces données, mais aussi d’en ajouter, d’en retirer et d’en modifier : c’est le SGBD (système de gestion de la base de données).
Exemples
Le catalogue informatisé d’une bibliothèque : il permet d’accéder à la liste de tous les ouvrages de la bibliothèque, de savoir s’ils sont disponibles ou pas, etc.
Le système de réservation de la SNCF (Système Socrate) : il permet d’accéder à tous les trains et à toutes les places dans les trains, de savoir si elles sont disponibles, etc.
Les sites internet de journaux (Le Monde, le Figaro, etc.) mais aussi les petits sites sous SPIP (système de publication sur internet) sont des bases de données d’articles : ils permettent d’accéder aux articles pour les lecteurs, de les mettre en ligne pour les auteurs, etc.
Problème de vocabulaire
Quand on parle de base de données (BD), on parle :
Soit de l’ensemble constitué par les données et le SGBD (par exemple : « Cours de base de données »)
Soit des données uniquement (par exemple : « on utilise la base de données des employés ») Soit du SGBD uniquement (par exemple « j’utilise une BD posgreSQL)
Dans ce cours, on fera en général la distinction entre les données (la base de données ou BD) et les outils de gestion (le SGBD).
4. Les 3 objectifs majeurs d’une BD
L’intégrité des données : altération et incohérence
Garantir l’intégrité des données, c’est éviter l’altération et l’incohérence des données. L’altération des données
Il y a plusieurs sources d’altération possibles : l’usure, les pannes, les erreurs, les malveillances. Une BD (et un SGBD) aura comme objectif d’en limiter la possibilité.
L’incohérence des données
Une donnée est incohérente si elle est contradictoire avec une autre donnée. Il y a deux grands types d’incohérence :
La duplication des données avec des valeurs différentes. Exemple : deux adresses différentes pour une même personne.
Les valeurs aberrantes. Exemples : un âge négatif ou supérieur à 150 ; une donnée faisant référence à une autre donnée qui n’existe pas.
La BD a pour objectif d’être un réservoir d’informations canonique (unique et commun), garantie sans incohérences (donc sans duplication de données).
La distinction entre données et traitements
Les données existent indépendamment des traitements qu’on leur applique. Ainsi, on a d’un côté les données et leur modèle et de l’autre les traitements rationnalisés.
Modèle des données indépendant des traitements Signifiance directe des données
L’information correspondant à une donnée doit être directement intelligible : elle ne correspond pas à un calcul ou à un codage (pas de code spéciaux dans la BD).
Vision unifiée des données manipulées
La BD permet de produire un modèle des données qui permet d’apporter une vision unifiée des données manipulées (dans une entreprise ou n’importe quel système d’informations, scientifique par exemple), indépendamment des traitements qui leur sont appliqués.
Cette vision unifiée permet une meilleure compréhension de la réalité représentée par les données.
Traitements rationnalisés
Performance et optimisation
Une BD doit fournir des performances acceptables par l’utilisateur. C’est la problématique de l’optimisation.
5. Généralités sur les SGBD Définition
Le SGBD, Système de Gestion de Base de Données, est le logiciel qui réalise les outils de gestion de la base de données. Il permet essentiellement de :
Définir les données qu’on veut manipuler, Ajouter, modifier, supprimer des données Consulter des données
Le SGBD répond aux objectifs de la BD. Architecture
L’architecture la plus courante des SGBD est une architecture Client — Serveur : le SGBD est le serveur avec lequel des clients peuvent communiquer.
Utilisateur 1 application 1 Un SGBD Disque dur : la ou les BD Utilisateur 2 application 2 : etc... etc...
Des Utilisateurs Des Clients Un Serveur
Une BD est stockée sur un ou plusieurs disques durs.
Pour une BD, il y a un SGBD et un seul. Le SGBD et la BD sont en général sur la même machine (pris en charge par le même SE). Le SGBD peut gérer plusieurs BD.
Pour un SGBD donné, il peut y avoir plusieurs applications qui communiquent avec lui. Le SGBD est le serveur. Chaque application est un client. Une application peut être sur une machine différente de celle du serveur, ou sur la machine du serveur.
Une application est un programme (un logiciel) qui envoie des commandes au SGBD pour manipuler d’une façon ou d’une autre les données de la BD sur le disque dur. Par exemple : un programme PHP ou java qui permet de communiquer avec une SGBD MySQL, PosgreSQL, ORACLE.
Les 3 types d’utilisateur d’un SGBD
Il y a trois types d’utilisateur d’un SGBD : L’administrateur
- Il gère les accès et les droits des utilisateurs : problème de sécurité.
- Il gère aussi le bon fonctionnement des bases de données : problème d’efficacité. Le développeur
Il programme une application qui sera cliente du SGBD. Il a accès à la BD à travers l’application cliente dite : « calculette SQL ».
L’utilisateur final
Il utilise une application cliente du SGBD. En général, il n’a accès à la BD qu’à travers une application cliente spécifique.
Les différents types d’objets gérés par un SGBD Un SGBD gère un certains nombre d’objets : Des tables : pour mettre les données
Des bases de données : pour distinguer des applications différentes Des index : pour optimiser les requêtes
Des contraintes d’intégrité : pour garantir la cohérence des données
Des utilisateurs : pour se connecter à la BD et leur donner des droits particuliers Des droits : pour limiter l’accès des utilisateurs à la BD
Etc.
Pour chacun de ces objets, le SGBD permet la création, modification, suppression. Deux grands types d’applications autour d’un SGBD
Il y a deux grands types d’application autour d’un SGBD : L’informatique « transactionnelle » : OLTP
Les applications d’informatique transactionnelle regroupent à la fois les applications de gestion (système d’information, site marchand, etc.) et des applications industrielles qui utilisent une BD. Ce sont toujours des applications de grosse taille.
On parle aussi d’OLTP : On-Line Transaction Processing L’informatique « décisionnelle » : OLAP
Les applications d’informatique décisionnelle servent à exploiter les données le plus souvent issues d’applications d’informatique transactionnelle.
Ces applications mettent en œuvre des notions de statistiques, d’analyse de données et de datamining. Elles peuvent s’appuyer sur des fonctionnalités SQL proposées par le SGBD (Group By, Pivot, etc.).
Ces applications sont en général de petite taille. Leur finalité est l’aide à la décision.
Les notions de «Business Intelligence » : BI, data-mining et data-warehouse sont des notions connexes à ce domaine.
On parle aussi d’OLAP : On-Line Analytical Processing. Objectif majeur d’un SGBD : l’intégrité des données
L’objectif majeur d’un SGBD est le même que celui de la BD : il s’agit de garantir l’intégrité des données.
Cet objectif se déploie sur plusieurs registres : La conformité au modèle
La gestion de base de l’intégrité consiste à vérifier que les données saisies sont cohérentes par rapport à la définition qu’on en a donnée.
Les accès concurrents
La gestion des accès concurrents permet d’éviter des incohérences dues à des modifications faites en même temps sur une même donnée.
La sécurité sur panne
La gestion de la sécurité sur panne permet de garantir le maintien de la cohérence des données, même quand une panne intervient au cours d’une période de modification des données.
Les autorisations d’accès
La gestion des droits des utilisateurs permet de limiter les possibilités des utilisateurs sur les données.
8. SGBD-R et SQL
Petit historique des modèles de données
Il existe différents types de BD en fonction du modèle d’organisation des données qu’elles utilisent.
A ce modèle est associé un langage de manipulation des données.
Années 60 : les anciens modèles. Modèle hiérarchique, modèle réseau, langages d’accès navigationnels permettant de circuler dans des structures de types graphes.
1970 : Création du modèle relationnel. Article de CODD.
Années 80 : Premiers SGBD-Relationnels sur le marché (ORACLE, Ingres, Informix, sybase, Dbase IV, etc.)
Années 90 : Premiers SGBD-Objets. XML.
Fin des années 2000 : Premiers SGBD « NoSQL ». Le NoSQL se développe dans des environnements à données dont la structure est très dynamique et pour lesquelles la question de l’intégrité n’est pas primordiale.
Aujourd’hui : L’Objet n’a pas remplacé le Relationnel. Le marché est dominé par les SGBD-R (ORACLE, SQL-Server (microsoft), DB2 (IBM), MySQL, PosgreSQL, ACCESS…). Les technologies sont parfois mixtes (Relationnel et objet). Le XML cohabite avec le SQL. Le « NoSQL » se développe.
SGBD-R
Aujourd’hui, le modèle relationnel domine le marché et la théorie des bases de données. Les SGBD correspondant sont des SGBD-R.
Le SQL
Le SQL est le langage qui permet d’envoyer toutes les requêtes possibles à un SGDB-R : création, modification, suppression, consultation, etc.
SQL signifie Structured Query Langage, c’est-à-dire langage structuré de requêtes.
Il est aussi parfois appelé : « SEQUEL» (prononcer : sicouel), pour Structured English Query Language.
Le SQL n’est pas un langage de programmation qui permet d’écrire des programmes composés d’une suite d’opérations élémentaires (comme le langage PHP, par exemple, et comme tous les langages dit « impératif » : C, C++, Pascal, VB, PHP, erc.).
Le SQL est un langage qui permet d’écrire des opérations élémentaires qui sont indépendantes les unes des autres.
SQL ou algèbre relationnelle ?
Le SQL un langage de programmation fondé sur l’algèbre relationnelle qui est la théorie des opérations qu’on peut appliquer à un objet mathématique particulier : les tableaux de données (appelées « relations » en algèbre relationnelle).
Toutefois, le SQL peut être considéré comme un ensemble d’opérateurs plutôt que comme un langage de programmation.
En ce sens, l’application cliente du SGBD qui permet d’utiliser directement le SQL peut être considérée comme une « calculette SQL » qui, au lieu de travailler sur des nombres, travaille sur des tableaux de données.
La calculette SQL
Il existe une application particulière qui permet de créer, modifier, détruire et consulter une BD : le « Command Line Client » et ses dérivés. Cette application concerne les programmeurs et pas les utilisateurs finaux.
Cette application particulière, on l’appellera : la calculette SQL. Par exemple : psql (postgreSQL), mysql, SQL*PLUS (ORACLE), etc.
Il existe des versions graphiques des calculettes. Par exemple : phpMyAdmin (MySQL), MySQL GUI tools, phpPGAdmin (postgreSQL), PgAdminIII (postgreSQL), ORACLE developer, SQL Server Management Studio Express (SSMSE), etc.
On va apprendre à se servir de cette calculette SQL PL-SQL
Dans la plupart des SGBD-R, il existe un langage de programmation à proprement parler qui permet d’écrire des successions d’opérations relationnelles (SQL) sous la forme d’un programme en utilisant les mécanismes usuels de la programmation impérative type Pascal, VB ou C, à savoir : les variables, les affectations, les tests, les boucles et les fonctions. Ce langage s’appelle : le PL-SQL, c’est-à-dire : Programmation Language SQL.
Le PL-SQL ne permet pas de développer une interface utilisateur très élaborée. Il ne remplace donc pas le développement d’une application cliente.
Le PL-SQL permet de :
éviter aux applications clientes de répéter les mêmes séries d’opérations SQL : principe de modularité
mieux gérer l’intégrité des données (triggers et règles). séparer les modules de calcul des modules d’affichage Dans ce cours, on ne traitera pas du tout le PL-SQL. Historique du SQL
Années 70 : premiers prototypes de SQL à la suite de l’article de CODD. 1979 : première version de SQL, proposé par ORACLE.
1986 : SQL ANSI (American National Standard Institute)
1989 : SQL-1, ISO et ANSI (International Standard Organisation) 1992 : SQL-2, ISO et ANSI (jointures externes et « join »)
Pérennité du SQL Présentation
On voit que le SQL existe depuis 1980 en pratique et 1970 en théorie. C’est un langage pérenne : il a vocation à durer !
Pourquoi :
Qui dit SI dit BD : la BD est le cœur du SI.
L’algèbre relationnelle est une théorie mathématique simple et solide (et non pas une technologie).
L’implantation massive du SQL rend son élimination coûteuse. Les solutions « NO SQL » restent localisées.
Pourquoi changer ?
Pour détrôner le SQL, il faudrait :
Une meilleure théorie : l’algèbre relationnelle étant fondé sur la logique de base et celle-ci étant très stable, il est peu probable qu’une meilleure théorie se développe.
Des outils de calcul pour remplacer la théorie : l’intérêt du SQL, c’est qu’il permet de ranger correctement et ainsi d’éviter les incohérences et d’accélérer les traitements. Si des algorithmes permettaient d’obtenir les mêmes résultats sans avoir à ranger, le SQL perdrait de son intérêt. Toutefois, si cette solution se réalisait (ce qui veut dire des ordinateurs beaucoup plus puissants), elle se positionnerait probablement en interface au dessus d’une BD SQL.
Quelles évolutions ?
Les évolutions correspondent à des usages particuliers :
Le XML est adapté aux données hiérarchisées avec peu de modification et de requêtes complexes
Le NoSQL est adapté aux structures de données dynamiques
Les ORM des frameworks facilitent la tâche du programmeur OLTP
Le SQL est adapté à tout le reste ! et particulièrement aux données de l’entreprise en général.
Aujourd’hui (années 2010), on peut parier sans grand risque que le SQL sera toujours présent d’ici à la fin de la carrière des étudiants !
INSTALLATION DE MYSQL SOUS XP
http://www.mysql.fr/ : entrée standard
http://www.mysql.fr/downloads/ : entrée standard des téléchargements http://dev.mysql.com/ : entrée de la zone développeur
Les produits MySQL
MySQLCommunity Edition (ou Server) Présentation
MySQL Community Edition est la version gratuite de MySQL. Site
http://www.mysql.fr/products/community/ La version GA
La version GA : generally available est une version entièrement testée. Il vaut mieux utiliser une version GA en environnement professionnel. La version development releases (beta)
La version development release (ou beta) est une version encore en cours de tests. Septembre 2012 Version GA : 5.5.25.A http://www.mysql.fr/downloads/ http://www.mysql.fr/downloads/installer/ Verstion beta : 5.6.5 m8 http://dev.mysql.com/downloads/mysql/5.6.html MySQL Entreprise Edition
Site http://www.mysql.fr/products/enterprise/ Fiche produit http://www.mysql.fr/products/enterprise/mysql-datasheet.fr.pdf Demo http://www.oracle.com/pls/ebn/swf_viewer.load?p_shows_id=10146324 MySQLCluster Présentation
MySQL Cluster Edition est la version « entreprise » payante de MySQL. Elle offre, en plus de MySQL Entreprise Edition, une prise en compte des bases de données dans les services de nouvelle génération : Web services, cloud service … Elle permet de prendre en charge du NoSQL. Elle fournit une disponibilité de 99,999 %.
Site http://www.mysql.fr/products/cluster/ Fiche produit http://www.mysql.fr/products/cluster/mysql-cluster-datasheet.fr.pdf Demo http://www.oracle.com/pls/ebn/swf_viewer.load?p_shows_id=11464419 MySQLWorkbench Présentation
MySQL Workbench fournit aux DBAs et aux développeurs un environnement de développement intégré pour :
La conception de la BD
Le développement SQL (MySQL Workbench remplace MySQL Tools : MySQL administrator et MySQL Query Browser)
L’administration de la BD Site
http://www.mysql.fr/downloads/workbench/ Télécharger : Windows (x86, 32-bit), MSI Installer Connexion à la BD
Présentation
Les outils de connexion permettent de se connecter à une BD MySQL. Il y a deux grands types de connexion :
la connexion standard par ODBD
la connexion via des langages de développement particuliers : java, C, C++, .NET, perl, etc. Site http://www.mysql.fr/downloads/connector/ Documentation http://dev.mysql.com/doc/refman/5.0/fr/mysql-apis.html http://dev.mysql.com/doc/refman/5.0/fr/odbc-connector.html http://dev.mysql.com/doc/refman/5.0/fr/java-connector.html http://dev.mysql.com/doc/refman/5.6/en/connectors-apis.html ODBC
ODBC est une interface standardisée, qui permet la connexion aux serveurs de bases de données.
http://msdn.microsoft.com/fr-fr/library/bb469866.aspx
Par exemple : connecter une BD MySQL avec Excel ou Access : http://blogmotion.fr/systeme/mysql-access-excel-4974 Documentation Page d’accueil : http://dev.mysql.com/doc/index.html Version 5.6 http://dev.mysql.com/doc/refman/5.6/en/index.html Version 5.0 en français http://dev.mysql.com/doc/refman/5.0/fr/index.html Version 5.0 en français à télécharger
Téléchargement : http://dev.mysql.com/ Site
Site officiel : http://www.mysql.fr/
Zone pour les développeurs : http://dev.mysql.com/downloads/ Téléchargement
On installe la version GA qui est plus sûre. Septembre 2012
Version GA : 5.5.25.A
http://www.mysql.fr/downloads/mysql/ Choisir l’OS « Windows »
Choisir Windows (x86, 32-bit), MSI Installer
Cliquer sur download : le téléchargement commence. Ca charge le fichier : mysql-5.5.25a-win32.msi
Installation
0 : Principes de l’installation
On choisit tout par défaut, sauf le PATH (étape 8) et le choix de l’utilisateur (étape 9) http://dev.mysql.com/doc/refman/5.0/fr/quick-standard-installation.html
http://dev.mysql.com/doc/refman/5.5/en/quick-standard-installation.html 1 : Arrêter le pare feu Windows (ce n’est pas forcément obligé)
2 : Lancer le .msi
Ca installe et copie les fichiers. 3 : Typical ou Complet
La version typique installe uniquement le serveur et les outils de base.
La version complète installe des outils (workbench, connecteurs, etc.) en plus du serveur. 4 : Launch the MySQL instance configuration wizard
Mieux vaut ne pas décocher cette option. 5 : Standard configuration
6 : Include Bin Directory in Windows PATH : oui !!!!!!!
Si on oublie de coher le PATH, il faudra le mettre à jour “à la main” sous WINDOWS : Démarrer/ Poste de Travail / Bouton droit / Propriété
Avancé / Variables d’environnement / Variables pour vous / PATH / modifier : ajouter le chemin complet des programmes de l’installation.
7 : Créer un utilisateur ROOT avec MdP
Entrez les mots de passe ou décocher le Modify Security Setting auquel cas root n’a pas de mot de passe
8 : Relancer le pare feu windows Anciens éléments d’installation Type de serveur
Machine développeur : on choisit cette option. Machine serveur
Machine dédiée serveur Usage de la BD
Multifonctions : moteurs InnoDB et MyISAM : on choisit cette option. Transactionnel (plus sécurisé) : moteur InnoDB
Non Transactionnel (plus rapide) : moteur MyISAM Tablespace InnoDB
Lieu de stockage spécifique des données InnoDB Exemple : C: / MySQL InnoDB Datafiles / Nombre de connexions au serveur
Environnement décisionnel : 20
Résultats de l’installation Principes
L’installation installe principalement les programmes et les fichiers de configuration Les deux principaux programmes sont :
Le serveur : mysqld.exe La calculette sql : mysql.exe Le fichier de configuration est : my.ini
Répertoire du serveur : BASEDIR Le répertoire BASEDIR
BASEDIR est une variable du SGBD qui contient le nom absolu du répertoire des programmes installés par mysql.
La commande suivante exécutée dans la calculette SQL permet de voir le contenu de BASEDIR :
Mysql > show variables like ‘%dir%’ ; ou
Mysql > show variables like ‘basedir’;
Permet de voir le répertoire où se trouvent les programmes de la BD. Contenu de BASESIR
Dans BASEDIR on trouve : Des répertoires :
Répertoire Contenu
Bin Programmes clients et serveur mysqld include et lib Des fichiers sources pour le serveur
Share Messages d’erreur
Des fichiers
my.ini : fichier de configuration utilisé
Les programmes du répertoire « BASEDIR / bin » 2 programmes fondamentaux Nom Description mysqld Serveur mysql Client 2 utilitaires fondamentaux Nom Description
mysqladmin Permet d’administrer le serveur mysqldump Permet de sauvegarder la ou les BD 2 utilitaires secondaires
Nom Description
mysqlshow Permet de lister les databases
mysqltest Permet de travailler sur les tables hors client
Raccourcis de l’installation
L’installation offre deux raccourcis :
Noms Usage
MySQL Command Line Client Client mysql pour gérer les BD. C’est la calculette SQL
MySQL Server Instance Config Wizard Modification ou suppression des caractéristiques du serveur.
On ne s’en servira pas !!!
Répertoire des données: DATAIR Le répertoire DATADIR
DATADIR est une variable du SGBD qui contient le nom absolu du répertoire des données installés par mysql.
La commande suivante exécutée dans la calculette SQL permet de voir le contenu de DATADIR :
Mysql > show variables like ‘%dir%’ ; ou
Utilisation
Le serveur mysqld (parfois nommé : mysqld-nt) Démarrage automatique
L’installation démarre automatiquement le serveur. Il sera démarré automatiquement à chaque démarrage de WINDOWS.
Ces éléments sont paramétrables facilement avec MySQL Administrator.exe (cf. chapitre sur MySQM Tools.
On peut aussi supprimer le démarrage automatique de XP : démarrer / exécuter / msconfig
services : décocher mysql
Arrêter le serveur via une fenêtre de commande Windows / Menu démarrer / exécuter / cmd C: > mysqladmin shutdowon –u root –p Entrer le password :
On peut aussi écrire le password (mysql, par exemple) sur la ligne de commande : Windows / Menu démarrer / exécuter / cmd
C: > mysqladmin shutdowon –u root –pmysql Démarrer le serveur via une fenêtre de commande
Windows / Menu démarrer / exécuter / cmd C: > mysqld --console
Parfois, le serveur s’appelle : mysqld-nt !
Regarder l’état du serveur via une fenêtre de commande Windows / Menu démarrer / exécuter / cmd
C: > mysqladmin ping –u root –p Entrer le password :
On peut aussi écrire le password (mysql, par exemple) sur la ligne de commande : Windows / Menu démarrer / exécuter / cmd
La calculette mysql : MySQL Command Line Client
Se connecter à partir du menu démarrer : utilisateur « root » MySQL Command Line Client démarre un client mysql.
C’est un utilisateur « root » en « localhost » avec son mot de passe.
La calculette est lancée à partir du répertoire des programmes : BASEDIR / bin Se connecter à partir du fenêtre de commande : client au choix
La calculette est lancée à partir du répertoire courant. C’est l’utilisateur choisi qui est connecté.
Connexion de l’utilisateur : « root »
Windows / Menu démarrer / exécuter / cmd C: > mysql –u nom_utilisateur –p
Entrer le password :
On peut aussi écrire le password (mysql, par exemple) sur la ligne de commande : Windows / Menu démarrer / exécuter / cmd
C: > mysql –u nom_utilisateur –pmysql mysql >
Connexion de l’utilisateur : « anonyme »
Windows / Menu démarrer / exécuter / cmd C: > mysql
mysql >
Connaître l’utilisateur connecté
Quand on a ouvert la calculette sql : mysql > select current_user(); ou
INSTALLATION DE MYSQL WORKBENCH
MySQL Work bench Présentation
MySQL Workbench fournit aux DBAs et aux développeurs un environnement de développement intégré pour :
La conception de la BD
Le développement SQL (MySQL Workbench remplace MySQL Tools : MySQL administrator et MySQL Query Browser)
L’administration de la BD Site
http://www.mysql.fr/downloads/workbench/ Téléchargement
http://www.mysql.fr/downloads/workbench/ Télécharger : Windows (x86, 32-bit), MSI Installer Installation
Pas de paramétrage : version complète. Résultats de l’installation
Répertoire d’installation
C:\Program Files\MySQL\MySQL Workbench 5.2 CE Fichier exécutable
C:\Program Files\MySQL\MySQL Workbench 5.2 CE\MySQLWorkbench.exe Principes du fonctionnement
3 usages
SQL developement Data Modeling
SQL developement
Si le server MySQL est lancé, quand on clique sur le « local instance MySQL » ça ouvre une fenêtre qui donne accès à un « browser » avec les BD déjà enregistrées sur le serveur et à une fenêtre qui permet de passer des commandes SQL
SQL Administration
Si le server MySQL est lancé, quand on clique sur le « local MySQL » ou sur « Server Administration, ça ouvre une fenêtre qui permet de faire de l’administration : suivre l’état du serveur, gérer les paramètres de configuration, gérer les utilisateurs, gérer les import-export de BD.
Data Modeling
Create new EER model / add diagram : on peut créer des tables et des liaisons et enregistrer le modèle
Open existing EER model : permet d’ouvrir un modèle précédemment enregistré
Create EER model from existing database : permet de créer un modèle à partir d’une BD déjà enregistrée sur le serveur
Create EER model from SQL script : permet de créer un modèle à partir d’un fichier script SQL.
INSTALLATION D’UN ENVIRONNEMENT PHP-MYSQL
Les environnements MySQL
Il y a plusieurs solutions intégrées qu’on peut télécharger.
Il semblerait, d’après ce qu’on lisait sur les forums en 2008, que WAMP5 et XAMPP soit les plus appréciées, un peu avant EasyPHP.
http://www.apachefriends.org/fr/xampp.html
XAMPP : X Apache MySQL PHP Perl. X pour multi OS.
XAMPP est un kit d'installation d'Apache qui contient MySQL, PHP et Perl. http://www.wampserver.com/download.php
WAMP : Windows Apache MySQL PHP LAMP : Linus Apache MySQL PHP
WAMP5 est une plate-forme de développement Web sous Windows. http://www.easyphp.org/
EasyPHP regroupe un serveur Apache, une base de données MySQL, le langage PHP ainsi que des outils facilitant le développement de vos sites ou de vos applications.
Installation de XAMPP sous XP
http://www.apachefriends.org/fr/xampp.html
http://www.apachefriends.org/fr/xampp-windows.html
Télécharger l’installateur : xampp-win32-1.6.3a-installer.exe (34 MO) Ou bien télécharger l’archive ZIP : xampp-win32-1.6.3a.zip (80 MO)
TP N°0 : INSTALLATION DE MYSQL SOUS WINDOWS
Exercice 01 : Installer MySQL
1. Suivre le polycopié de description de l’installation et installer la dernière version GA de mysql.
2. Eventuellement, installer MySQL Workbench
Exercice 02 : Prise en main de l’installation, du serveur et du client Objectif
L’objectif de l’exercice est de se fabriquer un environnement de travail qui permettent de contrôler les éléments essentiels du SGBD.
On peut soit utiliser l’installation simple de MySQL, soit utiliser l’installation de MySQL à travers un environnement de développement type WAMP ou EasyPHP.
Etapes
1. Après l’installation, créez un répertoire « BDMySQL » (ou « MySQL ») sur le bureau. 2. Mettez dans ce répertoire :
Le fichier d’installation (.msi) de mysql (facultatif). Le fichier d’installation de mysql workbench (facultatif).
3. Si votre ordinateur est en mode « familial » ou « secrétariat », passez en mode « développeur » : faites en sorte que les extensions des fichiers s’affichent !
Sous XP : dans une fenêtre allez dans : outils/option des dossiers/ affichage / masquer les extensions dont le type est connu : cette caractéristique doit être à faux ! Vous devez visualiser les extensions de tous les fichiers de votre machine de développement !
4. Trouvez le répertoire contenant les binaires de l’installation de MySQL : particulièrement mysql.exe et mysqld.exe.
Si vous n’avez aucune idée d’où se trouvent ces fichiers, vous devez faire une recherche à partir de la racine.
5. Vérifiez que la variable d’environnement « PATH » contienne le répertoire contenant les binaires de l’installation de MySQL. Si ce n’est pas le cas, faites la mise à jour du PATH. Pour vérifier si le PATH est à jour : ouvrez une console (sous XP : Démarrez/ Exécuter/
Pour mettre à jour le PATH : vous devez accéder aux propriétés du système. Sous XP : Démarrer / Poste de travail / bouton droit / propriété : ça permet d’ouvrir la fenêtre des propriétés du système. Ensuite : avancé / variables d’environnement / variables système. Ensuite vous trouvez la variable « PATH » : faites « modifier » et ajouter en dernier dans le PATH le chemin des binaires de mysql en utilisant la même syntaxe que pour les autres chemins.
6. Dans le répertoire « BDMySQL» que vous avez créé : créer un fichier batch appelé : « console.bat ». Ce fichier permet de lancer une console XP. Dans ce fichier, mettez uniquement la commande : cmd.
Pour vérifier que votre fichier console.bat fonctionne, vous devez constater qu’il est présent avec un icône d’exécutable. Si vous double-cliquez dessus : une console XP s’ouvre.
7. Dans le répertoire « BDMySQL» que vous avez créé : créer un fichier batch appelé : « calculette root.bat ». Ce fichier permet de lancer une calculette mysql en étant connecté en tant que root sur la machine du serveur. Dans ce fichier, mettez uniquement les commandes :
- mode con cols=120 - mode con lines=500
- mysql –u root –h localhost –p
Pour vérifier que votre fichier calculette.bat fonctionne, vous devez constater qu’il est présent avec un icône d’exécutable. Si vous double-cliquez dessus : une calculette mysql s’ouvre.
A noter que le –h serait surtout utile si le serveur n’était pas sur votre machine.
8. Vérifiez que le serveur est démarré en utilisant l’utilitaire « mysqladmin » avec l’option : « ping »
Dans une console XP, lancez la commande « mysqladmin –u root –h localhost –p ping » A noter que le –h serait surtout utile si le serveur n’était pas sur votre machine.
9. Dans le répertoire « BDMySQL » que vous avez créé : créez un fichier batch appelé : « ping.bat » qui permet de savoir si le serveur est démarré.
Vérifiez que ce fichier fonctionne.
Mettre dans ce répertoire un raccourci permettant d’ouvrir une calculette sql.
Un batch permettant d’ouvrir une fenêtre de commande DOS (batch contenant cmd). Un batch permettant d’ouvrir une calculette sql à partir du répertoire « bd ing1 » pour
l’utilisateur root.
Dans une console XP, lancez la commande « mysqladmin –u root –h localhost –p shutdown »
11. Vérifiez que le serveur est arrêté en utilisant votre fichier « ping.bat » puis en consultant la liste des processus dans le gestionnaire des tâches.
12. Dans le répertoire « BDMySQL» que vous avez créé : créer un fichier batch appelé : « shutdown.bat » qui permet d’arrêter le serveur.
Vérifiez que ce fichier fonctionne. Pour cela vous devez relancer le serveur : voir la série d’exercices suivant.
13. A partir d’un serveur arrêté, démarrez le serveur. Il suffit de taper la commande « mysqld » ou « mysqld –console ».
Le programme mysqld ne redonne pas la main dans la console. Toutefois si on ferme la console avec la croix rouge, le serveur continue à tourner.
14. Vérifiez que le serveur est lancé en utilisant votre fichier « ping.bat » puis en consultant la liste des processus dans le gestionnaire des tâches.
15. Dans le répertoire « BD SIGL1 » que vous avez créé : créer un fichier batch appelé : « serveur.bat » qui permet de lancer le serveur.
16. Arrêter le serveur.
17. Arrêter toutes les calculettes.
18. Vérifier que plus rien ne tourne dans la liste des processus. 19. Pinguer le serveur
20. Démarrer le serveur 21. Pinguer le serveur
22. Ouvrez une calculette root
23. Affichez le nom de l’utilisateur connecté : select user() ;
24. Affichez la liste de tous les utilisateurs : select host, user from mysql.user ;
25. Essayez d’ouvrir une calculette en utilisant un autre utilisateur. Affichez le nom de l’utilisateur connecté.
26. Ouvrez une deuxième calculette root.
27. Vérifiez quels sont tous les processus qui tournent (le serveur et les 2 ou 3 clients).
28. Dans une calculette root, affichez la variable BASEDIR (cherchez dans le poly ce que c’est et comment on fait).
29. Dans le répertoire « BDMySQL» que vous avez créé : créez un raccourci qui vous permettent d’ouvrir le dossier correspondant au répertoire BASEDIR.
La variable language=french permet que les messages du serveur soit en partie en français. 33. Arrêtez le serveur et relancez-le. Vérifiez que les messages sont en français.
Si le serveur n’arrive plus à être relancé, c’est que vous avez fait une erreur dans le fichier my.ini