Vous êtes sur la page 1sur 41

SUPPORT FORMATION: ADMINISTRATION DE

MYSQL
MARCHE N°19/00033/M/MINFI/SG/DRF/SDBM/SM/IPPM DU 08 OCTOBRE 2019 PASSE
SUIVANT AUTORISATION N° 004857/L/MINMAP/SG/DGMAS/DMSPI/CE2 DU 16 SEPTEMBRE
2019 RELATIF A LA SECURISATION DES RECETTES DE L’ETAT PAR AGREGATION DES
MOYENS DE PAIEMENTS AU CAMEROUN

PRÉSENTATION GÉNÉRALE

GAMO NANA RANDOLPH – Database Training Mentor


Objectifs Générales :
À la fin de cette session de formation, vous serez capable de :

Installer MySQL

Démarrer, Arrêtez et Redémarrez un Serveur MySQL

Configurer un serveur MySQL

Créer et utilisez des base de données tables et vues

Sécuriser une installation de MySQL à travers la gestion des comptes et des privilèges
➢ Sauvegarder et Restaurer une ou plusieurs Base de données

Mettre en place une solution de haute disponibilité

2
Déroulement de la formation
● La formation se déroulera en 05 jours
● 04heurs (MAX) de cours par jour réparti en :
– 02 heures de théories et 02heures de pratiques
● Chaque cours comprend des objectifs à atteindre, le
contenu en lui-même, quelque exercices et des TP
● Plateforme : MySQL 5.7 et Ubuntu 18.04

3

PRÉREQUIS

Usage basic de MySQL

LIENS UTILES

Site web officiel : http://www.mysql.com

Le manuel MySQL : https://dev.mysql.com/doc/refman/8.0/en

Des cours intéressants :

https://openclassrooms.com/fr/courses/1959476-administrez-vos-bases-de-donnees-avec-mysql

https://www.mysqltutorial.org

Téléchargement :

Windows : https://dev.mysql.com/downloads/installer/

Ubuntu: https://dev.mysql.com/downloads/repo/apt/

4
SUPPORT FORMATION: ADMINISTRATION DE
MYSQL
MARCHE N°19/00033/M/MINFI/SG/DRF/SDBM/SM/IPPM DU 08 OCTOBRE 2019 PASSE
SUIVANT AUTORISATION N° 004857/L/MINMAP/SG/DGMAS/DMSPI/CE2 DU 16 SEPTEMBRE
2019 RELATIF A LA SECURISATION DES RECETTES DE L’ETAT PAR AGREGATION DES
MOYENS DE PAIEMENTS AU CAMEROUN

JOUR 1 : INTRODUCTION ET INSTALLATION

GAMO NANA RANDOLPH – Database Training Mentor


1.1. Objectifs de la leçon

À la fin de cette leçon, vous serez capable de :


● Décrire MySQL ;
● Identifier les versions de MySQL ;
● Installer MySQL sur votre serveur ;
● Démarrer, Arrêtez et Redémarrez un Serveur MySQL ;
● Configurer un serveur MySQL.

6
1.2. C’est quoi MySQL
● MySQL est un logiciel libre et open source, écrit en C et C++
● MySQL dérive directement de SQL (Structured Query
Language). C’est un langage déclaratif : vous dites ce que
vous voulez tout simplement et le moteur se charge du reste
● le développement commence en 1994 par David Axmark et
Michael Wildernius.
● En 1995, les deux développeurs fondent MySQL AB
7
1.2. C’est quoi MySQL

la première version MySQL sort de le 23/05/1995

En 2008, MySQL AB est rachetée par la société Sun Microsystems pour
1 milliard $

En 2010, Oracle rachète Sun pour 7 milliards $

On craint alors la fin de la gratuité de MySQL,

de ces inquiétudes est né MariaDB, qui est en effet un fork de MySQL

De nombreuses entreprises dont Google, Yahoo, Youtube, Adobe,
Aribus, Alstom utilisent MySQL
8
Les versions

Versions Date de Sortie Date de Fin de Support


5.1 14 novembre 2008 Dec 2013
5.5 3 décembre 2010 Dec 2018
5.6 5 février 2013 Fev 2021
5.7 21 octobre 2015 Oct 2023
8.0 19 avril 2018 Avril 2026

9
Les propriétés de Mysql
Les propriétés de Mysql
Base de données relationnelle : MySQL stocke les données dans plusieurs zones de stockage
séparées appelées tables plutôt que de tout regrouper dans une seule grande unité de stockage
Modèle client-serveur : MySQL utilise le modèle client-serveur. La partie serveur est l’endroit
où vos données résident réellement. Pour accéder à ces données, vous devez toutefois en faire
la demande. C’est là que le client entre en jeu. En utilisant SQL – le langage de programmation
que nous avons mentionné plus haut – le client envoie une requête au serveur de base de
données pour les données dont le client a besoin.
Haute Performance et Versatilité : MySQL est basé sur le moteur InnoDB, qui est l’un des plus
puissants et versatile sur le marché. Cette versatilité le permet d’être apprécié tant pas les
amateurs que les experts.

10
Les propriétés de Mysql
Les propriétés de Mysql
Réplication : permet de sauvegarder facilement les données sur un ou
plusieurs serveurs afin d’éviter la perte d’information
Transaction : permet qu’un bloc de requête soit exécuté dans son
entière totalité
Langage de Programmation : Plusieurs langages de programmation
client telle que C, C++, Java, PHP sont compatibles avec MySQL
Autres : Vues, Procédure Stockés, Triggers, GIS

11
Les concurrents
● Oracle : édité par Oracle Corporation. C’est un SGBD payant. Il est basé sur un
autre langage procédural le PL/SQL. Oracle n’est pas conseille pour les projets de
petite taille. Sa rigidité fait qu’il n’est pas beaucoup présent dans le monde des
amateurs
● Postgresql : Logiciel Open Source. Il est moins utilisé car moins connu. La raison
de cette méconnaissance est qu’il a été longtemps disponible uniquement sous Unix
● MS Access : Microsoft Access et édité par Microsoft. Il est payant et non fonctionne
que sous Windows. Son avantage principal est l’interface graphique intuitive.
● SQL Lite : SQLite stocke toutes les données dans de simples fichiers. Par
conséquent, il ne faut pas installer de serveur de base de données. Il est très
performant mais difficile à sécuriser

12
1.3 Installation
Sous Linux (Ubuntu)
● Mettez à jour les index des paquets :
sudo apt update
● Installez MySQL :
sudo apt-get install mysql-server
● Sécurisez l’installation:
sudo mysql_secure_installation

13
1.3 Installation

Vérifiez la version installée sur votre serveur, avec la commande :
mysqladmin -u root -p version

Saisissez le mot de passe root et appuyez sur Entrée :
Enter password: ********
MySQL vous communique la version de votre serveur :
● installez, MySQL Workbench en utilisant la commande :
sudo apt-get install mysql-workbench

14
1.4 Comment se connecter à MySQL
VIA LA LIGNE DE COMMANDE
● La commande mysql permet d’interagir avec le Serveur MySQL.
● pour vous connecter au serveur, utilisez la commande :
mysql -u root -h localhost -p
➢ -u root signifie que vous êtes connecté en tant que l’utilisateur root
➢ -h localhost signifie que vous vous connecté à partir du terminal localhost

-p notifie MySQL de vous demander un mot de passe
● Saisissez le mot de passe root et appuyez sur Entrée :
Enter password: ********
● Si toute est OK, le système vous affiche le Shell :
mysql>
● pour lister les bases de données sur votre serveur utilisez :
Show databases ;
Pour quitter le shell saisissez :
exit ou quit 15
Explication Du résultat de Show Databases
● information_schema : cette base de données stocke les informations sur toutes
les bases de données. Les tables, les colonnes, le type des colonnes, les
procédures des bases de données y sont recensés, avec leurs caractéristiques.
Nous verrons cette base de données plus en détail dans le prochain chapitre.

● performance_schema : permet de stocker des informations sur les actions


effectuées sur le serveur (temps d'exécution, temps d'attente dus aux verrous,
etc.)

● mysql : contient de nombreuses informations sur le serveur. Entre autres, c'est


dans cette base que sont stockés les utilisateurs et leurs privilèges

16
1.4 Comment se connecter à MySQL
VIA MySQL Workbench
Workbench est un logiciel qui fournit une interface graphique pour administrer MySQL

● Démarrez MySQL Workbench

● vous pouvez vous connecter au Serveur en utilisant : Database > Connect to Database … ou alors en cliquant sur + situé à côté
de MySQL Connections

17
● Saisissez un Nom de Connection dans le champ connection name, exemple : Localhost. Par
défaut le username est root. Si vous utilisez un autre utilisateur, vous pouvez changer ce
nom

18
● Cliquez sur Store in Vault pour saisir le mot de passe de votre utilisateur. Une
fenêtre va s’afficher. Entrez le mot de passe et cliquez sur le bouton OK.

19
● Cliquez sur le bouton Test Connection pour vous s’assurer que la connexion est
bien établit

20
● Cliquez sur le bouton Ok pour enregistrer la connexion

21
● cliquez sur la connexion nouvellement créez :

22
● Workbench affiche le schéma actuel et un panneau pour saisir les
requêtes :


Saisissez la requête : Show databases pour lister les bases de données dans votre serveur
23
1.5 Comment Migrer MySQL
La migration de MySQL se fait en trois étapes :
● Téléchargement du Patch

● Configuration du Patch

● Lancement de la Mise à Jour

24
Téléchargement du Patch
● Téléchargez le patch contenant la dernière version
de MySQL :
wget https://repo.mysql.com//mysql-apt-
config_0.8.14-1_all.deb
● Lancez la configuration du patch :
sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb

25
Configuration du Patch (1/3)

26
Configuration du Patch (2/3)

27
Configuration du Patch (3/3)

28
● Lancez la mise à jour en exécutant les 02 commandes:
sudo apt-get update
sudo apt-get install mysql-server
● Durant l’installation, MySQL vous demandera si vous souhaitez
conserver vos anciens fichier de configuration, choisissez l’option
qui précise de ne pas garder ces configurations
● Après la mise à jour redémarrez le service
● Vérifiez la version installé sur votre serveur mysqladmin -u root -p
version

29
● En cas d’échec de la mise à jour exécutez ces commandes :
sudo apt-get remove –purge mysql-server mysql-client mysql-common -y
sudo apt-get update
sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb
sudo apt-get install mysql-server
sudo apt-get install mysql-workbench
● c’est à dire vous supprimez l’installation précédemment effectué (commande 1), vous
reconfigurer le patch (commande 2 et 3) puis vous réinstallez MySQL (commande 4 et
5)
● Attention, durant ce processus, MySQL vous demandera de supprimer votre datadir, ne
le faites pas.

30
1.6. Démarrer, Arrêter et redémarrer le Service MySQL
Démarrer le Service sous Ubuntu
● utilisez l’une des commandes suivantes :
sudo service mysql start
sudo /etc/init.d/mysql start

Arrêter le Service sous Ubuntu


● utilisez l’une des commandes suivantes :
sudo service mysql stop
sudo /etc/init.d/mysql stop 31
1.6. Démarrer, Arrêter et redémarrer le Service MySQL
Rédemarrez le Service sous Ubuntu
● utilisez l’une des commandes suivantes :
sudo service mysql restart
sudo /etc/init.d/mysql restart

Connaître l’état du Service


● utilisez la commande :
sudo service mysql status
32
1.7 Configuration du Serveur MySQL
● La configuration de mysql se fait à travers la modification des variables
● pour visualiser tous variables de configuration utilisez :
show variables ;

Exemple 1 : pour connaître le nombre de connexion simultané
autorisez, utilisez :
show variables like ‘ %max_connection %’ ;

Exemple 2 : pour connaître le répertoire où MySQL stocke les données des
bases, utilisez :
Show variables like ‘ %datadir %’ ;

Exemple 3 : pour connaître l’adresse par défaut d’écoute des requêtes MySQL :
show variables like ‘ %bind_address %’
33
1.7 Configuration du Serveur MySQL

● Exemple 4 : pour voir si le log général est actif:


show variables like ‘ %general_log%’ ;
● Exemple 5 : pour voir le répertoire du log général:
Show variables like ‘ %general_log_file%’ ;
● Exemple 6 : pour connaître le répertoire où est stocké les
erreurs :
show variables like ‘%log_error %’
34
1.7 Configuration du Serveur MySQL
● Pour monitorer le serveur, utilisez :
show status;
● Exemple 1 : pour voir le nombre de connexion au serveur:
Show status where variable_name = ‘Threads_connected’ ;
● Exemple 2 : pour voir les connexions en cours:
show processlist;
Vous pouvez ‘tuer’ un process sur la liste avec :
kill <process_id>
35
1.7 Configuration du Serveur MySQL

Le fichier de configuration de ces variables est :
• sous Ubuntu il est situé dans
/etc/mysql/mysql.conf.d/mysqld.cnf
• sous Windows il est dans %WINDIR%\my.cnf . Le répertoire
%WINDIR % est généralement C:\WINDOWS. Pour avoir la
location exacte de WINDIR faites : C:\> echo %WINDIR%
• Le format du fichier est ‘option=valeur’. Les lignes avec
commentaire sont précédé avec #
• un fragment:
datadir = /var/lib/mysql
36
1.7 Configuration du Serveur MySQL
● Les variables de serveur peuvent être définies dans via SET [SESSION|
GLOBAL] VARIABLE foo = bar ou /etc/mysql/mysql.conf.d/mysqld.cnf ,
● Avec la commande SET,
– l’option SESSION applique la modification que pour la session en cours.
– l’option GLOBAL applique la modification à toutes les sessions en cours
● En définissant les variables dans le fichier mysqld.cnf, il faut
redémarrer le serveur pour prise en compte.
● Avec le fichier mysqld.cnf les modifications persiste même après
fermeture des sessions contrairement à la commande SET

37
1.7 Configuration du Serveur MySQL
● Exemple 1 : Pour changer la variable max_connection avec la commande set :
set global max_connections = 160
● Exemple 2 : pour changer la variable max_connection dans le fichier mysqld.cnf,
ajouter la ligne :
max_connection = 160

● Note : pour modifier le fichier, utilisez :


Sudo nano <chemin_vers_fichier>
● Pour enregistrer les modifications, appuyez sur :
– Ctrl + X, puis sur la touche Y (pour valider les modification) ou N (pour ne pas les valider)
● Après modification, n’oubliez pas de redémarrez le serveur

38
Lecture Additionnelle
Sur le fichier my.cnf :
https://dev.mysql.com/doc/refman/8.0/en/option-files.html
https://stackoverflow.com/questions/2482234/how-do-i-find-the-mysql-my-cnf-location
sur les modes sql :
https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html
Sur la migration d’une version MySQL à une autre :
sous Linux : https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#repo-qg-apt-upgrading
Sous Windows: https://dev.mysql.com/doc/refman/8.0/en/windows-upgrading.html
https://fr.wikipedia.org/wiki/MySQL
Sur l’installation de MySQL ; https://www.sqlshack.com/how-to-install-mysql-on-ubuntu-18-04/

39
Exercices
1. Quelle est la version la plus récente de MySQL ?
A) 8.0 B) 7.2C) 5.7 D) 6.4
2. Dans le fichier de configuration de MySQL, que représente datadir ?
A) le répertoire des données B) le répertoire d’installation C) répertoire de
sauvegarde
3. Laquelle de ces caractéristiques, n’est pas propre à MySQL,?
A) Duplication B) Réplication C) Transaction D) Versatilité

40
Travaux Pratiques
1. Installez MySQL et Workbench sur votre machine
– Connectez vous en utilisant le terminal à votre Serveur
– Configurer une connexion dans votre Workbench

2. En utilisant workbench, connectez-vous dans MySQL est exécutez la commande : Show variables


2.1 : Combien de variables y a t’il ?
2.2 : Quelle est la valeur de max_connection, default_storage_engine, log_bin ?
3. Utilisez la commande set pour changer max_connection à 400. Affichez de nouveau cette variable.
Fermez Workbench. Reconnectez vous à workbench et affichez max_connection. Qu’est ce que vous
observez ?
4. Changez la valeur de max_connection à 400 en utilisant le fichier mysqld.cnf ( n’oubliez pas de
redémarrez votre serveur pour que le changement soit effectif)
5. Affichez à nouveau la valeur de max_connection. Qu’est ce que vous observez ?

41

Vous aimerez peut-être aussi