Présentation de la formation: 
MySQL : Administration 
(1Z0-883) 
Site : http://www.alphorm.com 
Blog : http://www.alphorm...
Le formateur 
 Noureddine DRISSI 
 Expertise dans le domaine des bases de données 
 15 années d’expérience sur tous les SG...
Connaissances préalables 
 Connaissances du système d’exploitation Linux/UNIX 
 Expérience professionnelle du langage SQL ...
A propos de ce cours 
 Objectifs : 
 Comprendre et décrire l’architecture de MySQL 
 Installer et mettre à jour MySQL 
 Ad...
Plan du cours 
 Module 1 : Introduction à MySQL 
 Module 2 : Architecture de MySQL 
 Module 3 : Installation de MySQL 
 Mo...
Certification 
Cette formation vous prépare à l'examen de la certification: 
MySQL for Database Administrators (1Z0-883) 
...
Liens utiles 
 Formations et certifications MySQL 
• http://education.oracle.com 
 Téléchargement MySQL 
• http://www.orac...
GO 
MySQL : Administration (1Z0-883) alphorm.com™©
Présentation de la formation: 
L’environnement 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum :...
Environnement 
 Prés-requis 
 Espace disque de 20G 
 OS Linux Centos 6.x ou Windows (Server, XP, ...) 
Internet 
Nom: pyra...
Introduction à MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Présentation de Mysql 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.com/f...
Présentation de MySQL 
 Historique de MySQL 
 Crée par la société TCX 
 Le 23 mai 1995: première version de MySQL 
 Mainte...
Présentation de MySQL 
 MySQL 
 Système de gestion de base de données Open Source 
• Rapide, robuste et facile d’utilisati...
Présentation de MySQL 
 Les apports de la version 5 
 Les procédures stockées 
 Les fonctions 
 Les triggers 
 Les curseur...
Présentation de MySQL 
Installation de MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Installation de MySQL 
Installation via package 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum ...
Installation via package 
 Caractéristiques 
• La plus simple 
• Nécessite deux packages au minimum 
- mysql-server-versio...
Pré-installation 
Installation à partir des sources 
MySQL : Administration (1Z0-883) alphorm.com™©
Installation de MySQL 
Installation sous Windows 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum...
Installation sous Windows 
 Deux solutions 
• Utiliser l’installeur 
- Simple et rapide 
• Pré-requis: installation de .Ne...
Installation sous Windows 
Mise à jour de MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Installation de MySQL 
Mise à jour de MySQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ht...
Mise à jour de MySQL 
 Bonnes pratiques 
• En terme de version 
- Limiter le nombre d’écart en terme de version 
• Possibi...
Mise à jour de MySQL 
 Bonnes pratiques 
• La préparation 
- Lire la documentation de la version cible 
- Réaliser une sau...
Mise à jour de MySQL 
 Bonnes pratiques 
• Les étapes 
- Sauvegarde logique et physique 
- Arrêt du serveur MySQL 
- Mise ...
Installation sous Windows 
Installation de la base fact 
MySQL : Administration (1Z0-883) alphorm.com™©
Installation de MySQL 
Installation de la base fact 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Fo...
Installation de la base fact 
 Sources (téléchargeable à partir de la plateforme Alphorm) 
• Exécution du script « fact.sq...
Installation de la base fact 
Architecture de MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Architecture de MySQL 
Instance MySQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://w...
Instance MySQL 
 Une instance est caractérisée par 
• Un fichier de configuration (my.cnf pour UNIX/Linux et my.ini pour W...
Instance MySQL 
 Configuration type du fichier my.cnf 
[mysql] 
port=3307 
[mysqld] 
bind-address=0.0.0.0 
port=3307 
base...
Instance MySQL 
 Les étapes d’initialisation d’une nouvelle instance 
• Création de l’aborescence 
• Attribution des droit...
Instance MySQL 
Arrêt et démarrage d’une instance 
MySQL : Administration (1Z0-883) alphorm.com™©
Architecture de MySQL 
Arrêt et démarrage d’une 
instance 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/bl...
Arrêt et démarrage d’une instance 
 Démarrage de MySQL 
• Sous UNIX/LINUX 
- En utilisant le script /etc/init.d/mysqld 
sh...
Arrêt et démarrage d’une instance 
 Arrêt de MySQL 
• Sous UNIX/LINUX 
- En utilisant le script /etc/init.d/mysqld 
shell ...
Arrêt et démarrage d’une instance 
Le cache MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Architecture de MySQL 
Le cache MySQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://w...
Le cache MySQL 
 Architecture (cache d’une instance) 
Mémoire partagée Mémoire par thread 
key_buffer_size 
innodb_buffer_...
Le cache MySQL 
Les logs MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Architecture de MySQL 
Les bases de données 
sous MySQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog...
Les bases de données sous MySQL 
 Racine datadir 
Bases de 
données 
Journaux 
Journaux 
binaires pour 
le moteur 
binaire...
Les bases de données sous MySQL 
 Généralités 
• Une base MySQL est constituée d’un répertoire identique au nom de la base...
Les bases de données sous MySQL 
 Caractéristiques 
• Le nom de la base de données est sensible à la casse 
- lower_case_t...
Les bases de données sous MySQL 
 Création et suppression 
 La commande CREATE DATABASE permet de créer une base de donnée...
Les bases de données sous MySQL 
La configuration de MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Configuration de MySQL 
Les méthodes de 
configuartion 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog ...
Les méthodes de configuration 
 Présentation 
• Configuration lors de la compilation avec le script « configure » 
• Dans ...
Les méthodes de configuration 
 Configuration via le fichier my.cnf 
• Localisaton 
- Linux 
• /etc/, /etc/mysql, SYSCONFD...
Les méthodes de configuration 
 Organisation du fichier my.cnf 
• Organiser en section 
- Chaque section correspond à un n...
Les méthodes de configuration 
 Modèles de fichier my.cnf 
• my-small.cnf (poste de travail) 
• my-medium.cnf (poste de tr...
Les méthodes de configuration 
 Paramétrage via le programme mysqld 
• Les paramètres sont précédés par « -- » 
• Les même...
Les méthodes de configuration 
 Paramétrage dynamique de MySQL 
• Deux niveaux de modifications 
- Au niveau session: SET ...
Les méthodes de configuration 
Affichage de la configuration 
MySQL : Administration (1Z0-883) alphorm.com™©
Configuration de MySQL 
Affichage de la 
configuration 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog ...
Affichage de la configuration 
 Les méthodes de visualisation des paramètres MySQL 
• Directement dans le fichier my.cnf 
...
Affichage de la configuration 
Présentation des principaux 
paramètres MySQL 
MySQL : Administration (1Z0-883) alphorm.com...
Configuration de MySQL 
Les principaux paramètres 
MySQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blo...
Les principaux paramètres MySQL 
 Configuration des logs 
Paramètres Description 
log-bin Activation des logs binaires 
lo...
Les principaux paramètres MySQL 
 Configuration de l’instance 
Paramètres Description 
port Numéro de port d’écoute pour l...
Les principaux paramètres MySQL 
 Configuration du cache mémoire 
Paramètres Description 
innodb_buffer_pool_size Taille d...
Les principaux paramètres MySQL 
Clients et outils MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Clients et outils MySQL 
L’outil mysql 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://...
L’outil mysql 
 Caractéristiques 
• Permet d’éxecuter les commandes SQL: mysql [ options ] 
- Les principales options 
Opt...
L’outil mysql 
L’outil mysqlshow 
MySQL : Administration (1Z0-883) alphorm.com™©
Clients et outils MySQL 
L’outil mysqlshow 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : htt...
L’outil mysqlshow 
 Caractéristiques 
• Permet de lister la liste des bases, tables et colonnes 
- Utilise les mêmes optio...
L’outil mysqlshow 
L’outil mysqladmin 
MySQL : Administration (1Z0-883) alphorm.com™©
Clients et outils MySQL 
L’outil mysqladmin 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ht...
L’outil mysqladmin 
 Caractéristiques 
• Utilitaire pour éxécuter des commandes d’administration 
- Utilise les mêmes opti...
L’outil mysqladmin 
Les outils graphiques 
d’administration 
MySQL : Administration (1Z0-883) alphorm.com™©
Clients et outils MySQL 
Les interfaces graphiques 
d’administration 
Site : http://www.alphorm.com 
Blog : http://www.alp...
Les interfaces graphiques d’administration 
 Les principaux outils graphiques 
• PHPMyAdmin (Open Source) 
• Pré-requis: 
...
Les interfaces graphiques d’administration 
 Les principaux outils graphiques 
• MySQL Workbench (anciennement MySQL Admin...
Les interfaces graphiques d’administration 
 MySQL Workbench (outil unifié) 
• Permet 
- Créer,modifier ou supprimer des o...
Les interfaces graphiques d’administration 
Les types de données MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Les types de données MySQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm....
Les types de données MySQL 
 Les différents types 
• Trois grands types 
- Les types numériques 
- Les types Date et heure...
Les types de données MySQL 
 Les types numériques 
• Types de données entiers 
Type Intervalle Taille (octets) Description...
Les types de données MySQL 
 Les types numériques 
• Types de données à virgule flottante 
Type Intervalle Taille (octets)...
Les types de données MySQL 
 Les types Date et heure 
• Types de données date et heure 
Type Intervalle Description 
DATE ...
Les types de données MySQL 
 Les types de chaînes 
• Types de données de chaîne classique 
Type Intervalle Description 
[N...
Les types de données MySQL 
 Les types de chaînes 
• Types de données de chaîne TEXT et BLOB 
Type Intervalle Description ...
Les types de données MySQL 
 Les types de chaînes 
• Types de données de chaîne ENUM et SET 
Type Nombre de valeur MAX Des...
Les types de données MySQL 
 Optimisation du type 
shell SELECT colonne from TABLE PROCEDURE ANALYSE() G 
MySQL : Administ...
Les types de données MySQL 
Obtention des métadonnées 
MySQL : Administration (1Z0-883) alphorm.com™©
Obtention des métadonnées 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.c...
Obtention des métadonnées 
 La base INFORMATION_SCHEMA 
 Constitue le « dictionnaire de données » MySQL 
 Disponible depui...
Obtention des métadonnées 
 La base INFORMATION_SCHEMA 
 Les principales vues 
Vues Description 
SCHEMATA Fournit des info...
Obtention des métadonnées 
Moteurs de stockage MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Moteurs de stockage MySQL 
Présentation 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http:/...
Moteurs de stockage MySQL 
 Caractéristiques MySQL 
 Un moteur de stockage, c’est quoi ? 
• Spécifie la manière dont seron...
Moteurs de stockage MySQL 
 Le choix du moteur 
 Dépend de 
• La manière de stocker les données 
• La criticité des donnée...
Moteurs de stockage MySQL 
 Les moteurs les plus connus 
• INNODB 
• MYISAM 
• MEMORY 
• ARCHIVE 
• CSV 
• FEDERATED 
• .....
Moteurs de stockage MySQL 
 Quelques commandes utiles 
Commandes Description 
SHOW ENGINES Affiche la liste des moteurs di...
Moteurs de stockage MySQL 
Le moteur INNODB 
MySQL : Administration (1Z0-883) alphorm.com™©
Moteurs de stockage MySQL 
Le moteur InnoDB 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ht...
Le moteur InnoDB 
 Caractéristiques générales du moteur InnoDB 
 Moteur par défaut 
 Les données et les indexes sont stock...
Le moteur InnoDB 
 Gestion du stockage du moteur InnoDB 
 MySQL enregistre la structure de table dans le fichier .frm (dan...
Le moteur InnoDB 
 Architecture globale du moteur Innodb 
• Utilise deux journaux de transactions: ib_logfile0 et ib_logfi...
Le moteur InnoDB 
 Fonctionnement du moteur Innodb 
Mémoire 
innodb_innodb_log_buffer_size buffer_pool_size 
innodb_flush_...
Le moteur InnoDB 
Le moteur MyISAM 
MySQL : Administration (1Z0-883) alphorm.com™©
Moteurs de stockage MySQL 
Le moteur MyISAM 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ht...
Le moteur MyISAM 
 Caractéristiques générales du moteur MyISAM 
 Ses particularités sont : 
• Rapidité en lecture 
• Reche...
Le moteur MyISAM 
 Types de format pour les tables MyISAM 
 Statique (par défaut sauf pour les types VARCHAR, VARBINARY, B...
Le moteur MyISAM 
Le moteur MEMORY 
MySQL : Administration (1Z0-883) alphorm.com™©
Moteurs de stockage MySQL 
Le moteur MEMORY 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ht...
Le moteur MEMORY 
 Caractéristiques générales du moteur MEMORY 
 Existe depuis la version 3.23.25 
 Moteur non-transaction...
Le moteur MEMORY 
Les autres moteurs MYSQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Moteurs de stockage MySQL 
Le autres moteurs MySQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
For...
Les autres moteurs MySQL 
 Le moteur Archive 
• Utilise un fichier .frm pour la structure et un fichier .ARZ pour les donn...
Les autres moteurs MySQL 
 Le moteur CSV 
• Stock les données au format CSV (Comma Separated Values) 
• La table est repré...
Les autres moteurs MySQL 
 Le moteur MERGE 
 Offre la possibilité de grouper des tables de structures identique pour en 
f...
Les autres moteurs MySQL 
 Le moteur FEDERATED 
 Permet de déporter les données sur un serveur distant 
 Seule une copie d...
Les autres moteurs MySQL 
 Autres moteurs 
• NDB Cluster 
• XtraDB 
MySQL : Administration (1Z0-883) alphorm.com™©
Les autres moteurs MySQL 
 Récapitulatif des caractéristiques pour les principaux moteurs 
Moteurs Type de verrous Gestion...
Les autres moteurs MySQL 
Transactions et verrous 
MySQL : Administration (1Z0-883) alphorm.com™©
Les trasactions et verrous 
Le autres moteurs MySQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Fo...
Les autres moteurs MySQL 
 Le moteur Archive 
• Utilise un fichier .frm pour la structure et un fichier .ARZ pour les donn...
Les autres moteurs MySQL 
 Le moteur CSV 
• Stock les données au format CSV (Comma Separated Values) 
• La table est repré...
Les autres moteurs MySQL 
 Le moteur FEDERATED 
 Permet de déporter les données sur un serveur distant 
 Seule une copie d...
Les autres moteurs MySQL 
 Autres moteurs 
• NDB Cluster 
• XtraDB 
MySQL : Administration (1Z0-883) alphorm.com™©
Les autres moteurs MySQL 
 Récapitulatif des caractéristiques pour les principaux moteurs 
Moteurs Type de verrous Gestion...
Les autres moteurs MySQL 
Transactions et verrous 
MySQL : Administration (1Z0-883) alphorm.com™©
Les transactions et verrous 
Les niveaux d’isolation 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
F...
Les niveaux d’isolation 
 Les niveaux d’isolation 
• MySQL offre quatre niveaux d’isolation 
- REPEATABLE-READ (par défaut...
Les niveaux d’isolation 
 Possibilité de modifier le niveau d’isolation 
• Au niveau instance 
- Dans le fichier my.cnf 
•...
Les niveaux d’isolation 
Les verrous 
MySQL : Administration (1Z0-883) alphorm.com™©
Les transactions et verrous 
Les verrous 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http:...
Les verrous 
 Méthodes de verrouillage 
• Verrouillage au niveau table pour les moteurs (MyISAM, MEMORY) 
• Verrouillage a...
Les verrous 
 Verrou explicite 
• La commande à utiliser est LOCK TABLES 
- READ pose un verrou partagé ; 
- WRITE pose un...
Les verrous 
Le partitionnement 
MySQL : Administration (1Z0-883) alphorm.com™©
Le partitionnement 
Présentation 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.al...
Le partitionnement 
 Introduction 
• Permet de diviser une table physique en plusieurs partitions en fonction des données ...
Le partitionnement 
 Les pré-requis pour utiliser le partitionnement 
mysql SHOW PLUGINS 
 Les contraintes liés au partiti...
Le partitionnement 
 Les principaux types de partitionnement 
• Le partitionnement de type RANGE 
• Le partitionnement de ...
Le partitionnement 
Le partitionnement par RANGE 
MySQL : Administration (1Z0-883) alphorm.com™©
Le partitionnement 
Le partitionnement de 
type RANGE 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
...
Le partitionnement de type RANGE 
 Le partitionnement de type RANGE 
• Caractéristiques 
- Permet de séparer physiquements...
Le partitionnement de type RANGE 
 Le partitionnement de type RANGE COLUMNS 
• Caractéristiques 
- A partir de MySQL 5.5 
...
Le partitionnement de type RANGE 
Le partitionnement de type LIST 
MySQL : Administration (1Z0-883) alphorm.com™©
Le partitionnement 
Le partitionnement de 
type LIST 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
F...
Le partitionnement de type LIST 
 Le partionnement de type LIST 
• Caractéristiques 
- Permet de définir une liste de nomb...
Le partitionnement de type LIST 
 Le partionnement de type LIST COLUMNS 
• Caractéristiques 
- Permet de séparer physiquem...
Le partitionnement de type LIST 
Le partitionnement de type HASH 
MySQL : Administration (1Z0-883) alphorm.com™©
Le partitionnement 
Le partitionnement de 
type HASH 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
F...
Le partitionnement de type HASH 
 Le partionnement de type HASH 
• Caractéristiques 
- Permet de distribuer d’une manière ...
Le partitionnement de type HASH 
Le partitionnement de type KEY 
MySQL : Administration (1Z0-883) alphorm.com™©
Le partitionnement 
Le partitionnement de 
type KEY 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Fo...
Le partitionnement de type KEY 
 Le partionnement de type KEY 
• Caractéristiques 
- Presque identique au type HASH 
• Dif...
Le partitionnement de type KEY 
 Le partionnement de type KEY 
• Syntaxe 
CREATE TABLE nom_table ( 
champ1 type contrainte...
Le partitionnement de type KEY 
Le sous partitionnement 
MySQL : Administration (1Z0-883) alphorm.com™©
Le partitionnement 
Le sous-partitionnement 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ht...
Le sous-partitionnement 
 Caractéristiques 
• Consiste à partitionner une partition de type RANGE ou LIST 
• Les sous-part...
Le sous-partitionnement 
Gestion des utilisateurs 
MySQL : Administration (1Z0-883) alphorm.com™©
Gestion des utilisateurs 
La gestion des comptes 
MySQL 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog...
La gestion des comptes MySQL 
 Présentation 
 Basé sur un système de privilèges simple et performant 
 Chaque utilisateur ...
La gestion des comptes MySQL 
 Caractéristiques 
 Deux utilisateurs crées après l’installation 
• root : super utilisateur...
La gestion des comptes MySQL 
 Système d’authentification 
 Les utilisateurs et les privilèges sont stockés la base de don...
La gestion des comptes MySQL 
 Système d’authentification 
 Accès au serveur 
• Contrôle de l’accès en deux temps 
- Vérif...
La gestion des comptes MySQL 
 Système d’authentification 
 Description des étapes de connexion 
• Etape 1: 
- MySQL utili...
La gestion des comptes MySQL 
 Système d’authentification 
 Description des étapes de connexion 
• Etape 1: 
- MySQL utili...
La gestion des comptes MySQL 
 Gestion des comptes utilisateurs 
 Création d’un compte utilisateur 
• Syntaxe: 
CREATE USE...
La gestion des comptes MySQL 
Gestion des privilèges utilisateurs 
MySQL : Administration (1Z0-883) alphorm.com™©
Gestion des utilisateurs 
La gestion privilèges 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum ...
La gestion des privilèges 
 Les commandes GRANT/REVOKE 
 GRANT 
• permet d’attribuer des privilèges 
• Permet de créer des...
La gestion des privilèges 
 Les commandes GRANT/REVOKE 
 REVOKE 
• permet de retirer des privilèges 
• Ne permet pas de su...
La gestion des privilèges 
 La commande SHOW GRANTS 
 Permet de visualiser les droits des utilisateurs 
• Syntaxe générale...
La gestion des privilèges 
 Vérification des requêtes 
 MySQL vérifie chaque requête envoyée afin de s’assurer que l’utili...
La gestion des privilèges 
 Les privilèges globaux (instance) 
 Stockés dans la table user de la base mysql 
• Liste 
- CR...
La gestion des privilèges 
 Les privilèges au niveau bases 
 Stockés dans la table db de la base mysql 
• Liste 
- ALTER, ...
La gestion des privilèges 
 Les privilèges au niveau objets (tables) et colonnes 
 Stockés dans les tables tables_priv et ...
La gestion des privilèges 
 Les privilèges au niveau procédures et fonctions stockées 
 Stockés dans la table procs_priv d...
La gestion des privilèges 
Gestion de la sécurité 
MySQL : Administration (1Z0-883) alphorm.com™©
Gestion de la sécurité 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.com/...
Gestion de la sécurité 
 Les bonnes pratiques 
 Suppression des comptes anonymes 
 Mot de passe et privilèges 
 Audit des ...
Gestion de la sécurité 
 Les plug-ins 
 Plug-ins d’authentification (à partir de MySQL 5.6) 
• mysql_native_password 
- pa...
Gestion de la sécurité 
 Les plug-ins 
 Plug-ins de validation des mots de passe 
• validate_password 
- Permet de tester ...
Gestion de la sécurité 
 Les plug-ins 
 Plug-ins de validation des mots de passe 
• La fonction VALIDATE_PASSWORD_STRENGTH...
Gestion de la sécurité 
 Expiration du mot de passe 
 Possibilité de forcer le changement d’un mot de passe 
• ALTER USER ...
Gestion de la sécurité 
 Utilitaire de configuration des mots de passe 
 Outil mysql_config_editor 
• Nouveauté MySQL 5.6 ...
Gestion de la sécurité 
Maintenance des tables 
MySQL : Administration (1Z0-883) alphorm.com™©
Maintenance des tables 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm.com/...
Maintenance des tables 
 La maintenance du serveur MySQL 
 Défragmentation des tables 
 Mise à jour des statistiques 
 Dét...
Maintenance des tables 
 La commande CHECK TABLE 
 Vérifie la structure 
 Vérifie le contenu des tables 
 Verrouillage des...
Maintenance des tables 
 La commande CHECK TABLE 
 Syntaxe 
CHECK TABLE table1 [, table2 ] [ option [option] ] 
• Options ...
Maintenance des tables 
 La commande CHECK TABLE 
 Retourne une table avec quatre champs 
- Table 
- Op (toujours check) 
...
Maintenance des tables 
 La commande REPAIR TABLE 
 Corrige des tables en erreurs (CHECK TABLE) 
• Moteurs supportés 
- My...
Maintenance des tables 
 La commande CHECKSUM TABLE 
 Calcul la somme de contrôle (checksum) d’une table (droit de select)...
Maintenance des tables 
 La commande ANALYZE TABLE 
 Analyse et enregistre les statistiques sur une ou plusieurs tables 
 ...
Maintenance des tables 
 La commande OPTIMISE TABLE 
 Permet de réduire la fragmentation 
• Récupère l’espace inutilisé 
•...
Maintenance des tables 
 Utilitaire myisamchk 
 Équivalent à [ CHECK | REPAIR | ANALYZE ] TABLE 
 Travail directement sur ...
Maintenance des tables 
 Utilitaire mysqlcheck 
 Équivalent à [ CHECK | REPAIR | ANALYZE ] TABLE 
 Travail directement au ...
Maintenance des tables 
Import et export des données sous 
MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Import et export des données 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphor...
Import et export des données 
 Export des données 
 SELECT ... INTO OUTFILE 
• Permet d’exporter les données lues dans un ...
Import et export des données 
 Chargement des données 
 LOAD DATA INFILE 
• Syntaxe 
LOAD DATA [LOW_PRIORITY | CONCURRENT]...
Import et export des données 
 mysqldump 
 Outil de sauvegarde logique 
• Syntaxe 
mysqldump -u username -p [ OPTIONS ] db...
Import et export des données 
 mysqldump 
 Import d’une sauvegarde logique 
• Syntaxe 
mysql [ OPTIONS ] dbname  fichier.s...
Maintenance des tables 
Programmation dans MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Programmation sous MySQL 
Les procédures stockées 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Foru...
Les procédures stockées 
 La notion de routine 
• Programmes stockés dans le moteur MySQL 
- Les procédures stockées et le...
Les procédures stockées 
 Langage de programmation d’une procédure stockée 
• Langage LMD et LDD 
• Déclaration des variab...
Les procédures stockées 
 Qu’est ce qu’une procédure stockée ? 
• Programme (routine) qui n’a pas de valeur de retour 
• S...
Les procédures stockées 
 Les paramètres 
[ IN | OUT | INOUT ] param_name type 
type : type MySQL valide 
 Les caractérist...
Les procédures stockées 
 Commandes sur les procédures stockés 
• Suppression 
- Syntaxe 
DROP PROCEDURE IF EXISTE nom_pro...
Les procédures stockées 
Les fonctions 
MySQL : Administration (1Z0-883) alphorm.com™©
Programmation sous MySQL 
Les fonctions 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http:/...
Les fonctions 
 Qu’est ce qu’une fonction ? 
• Programme (routine) qui renvoi un résultat 
• Syntaxe 
CREATE 
[ DEFINER = ...
Les fonctions 
 Les caractéristiques 
LANGUAGE SQL | [ NOT ] DETERMINISTIC | { CONTAINS 
SQL | NO SQL | READS SQL DATA | M...
Les fonctions 
 Commandes sur les procédures stockés 
• Suppression 
- Syntaxe 
DROP FUNCTION IF EXISTE nom_fonction; 
• M...
Les fonctions 
Les triggers 
MySQL : Administration (1Z0-883) alphorm.com™©
Programmation sous MySQL 
Les triggers 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://...
Les triggers 
 Qu’est ce qu’un trigger (déclencheur) ? 
• Associé à une table 
• S’active lorsqu’un évènement particulier ...
Les triggers 
 Cas d’utilisation 
 Log des utilisateurs/changements 
 Exécuter des règles métier 
 Renforcer les contraint...
Les triggers 
 Création d’un trigger 
• Syntaxe 
CREATE TRIGGER déclencheur 
BEFORE | AFTER 
INSERT | DELETE | UPDATE ON n...
Les triggers 
 Informations sur les triggers 
• Vue 
INFORMATION_SCHEMA.TRIGGERS 
 Suppression d’un trigger 
Syntaxe 
• DR...
Les triggers 
Le planificateur d’événements 
MySQL : Administration (1Z0-883) alphorm.com™©
Programmation sous MySQL 
Le planificateur 
d’évènements 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blo...
Le planificateur d’évènements 
 Qu’est ce que le planificateur d’évènements 
• Permet d’automatiser des tâches 
- Interval...
Le planificateur d’évènements 
 Création d’un événement 
• Syntaxe 
CREATE 
[DEFINER = { user | CURRENT_USER }] 
EVENT [IF...
Le planificateur d’évènements 
 Création d’un événement 
• Syntaxe 
moment: 
AT timestamp [+ INTERVAL intervalle] ... 
| E...
Le planificateur d’événements 
 Modification d’un événement 
• Syntaxe 
ALTER EVENT nom_événement ... 
 Suppression d’un é...
Le planificateur d’événement 
Sauvegarde et restauration sous 
MySQL 
MySQL : Administration (1Z0-883) alphorm.com™©
Sauvegarde et restauration 
Introduction 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http:...
Sauvegarde et restauration 
 Les questions à se poser 
• Que sauvegarder 
• A quel fréquence 
• La tolérence de perte des ...
Sauvegarde et restauration 
Les sauvegardes logiques 
MySQL : Administration (1Z0-883) alphorm.com™©
Sauvegarde et restauration 
Les sauvegardes logiques 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
F...
Les sauvegardes logiques 
 Les outils de sauvegarde 
 SELECT ... INTO OUTFILE 
 mysqldump 
 Sauvegarde cohérente avec mysq...
Les sauvegardes logiques 
Les sauvegardes physiques 
MySQL : Administration (1Z0-883) alphorm.com™©
Sauvegarde et restauration 
Les sauvegardes 
physiques 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog ...
Les sauvegardes physiques 
 Caractéristiques 
 Copie physique de tous les fichiers (datadir) au niveau OS 
 Peut-être réal...
Les sauvegardes physiques 
 Sauvegarde fichiers MyISAM 
 Les fichiers à sauvegarder: .frm, .MYD et .MYI 
 Base ouverte 
 N...
Les sauvegardes physiques 
 Sauvegarde MyISAM 
 Les étapes 
 Pose d’un verrou sur les tables à sauvegarder 
 LOCK TABLE 
 ...
Les sauvegardes physiques 
 Sauvegarde fichiers InnoDB 
 Les fichiers à sauvegarder 
 innodb_data_file_path: .frm, ibdatan...
Les sauvegardes physiques 
 Sauvegarde fichiers InnoDB 
 Les étapes 
 Poser un verrou global en lecture sur l’ensemble des...
Les sauvegardes physiques 
La restauration 
MySQL : Administration (1Z0-883) alphorm.com™©
Sauvegarde et restauration 
La restauration 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ht...
La restauration 
 Dépend du type de sauvegarde 
 Restauration à partir d’une sauvegarde à froid 
 Restauration à partir d’...
La restauration 
La réplication 
MySQL : Administration (1Z0-883) alphorm.com™©
La réplication 
Introduction 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphor...
Introduction 
 Qu’est-ce que la réplication ? 
• Permet de diposer de plusieurs serveurs avec les mêmes données 
• Utilise...
Introduction 
 Pourquoi utiliser la réplication 
• Montée en charge 
• Répartition de la charge 
• Haute disponibilité 
• ...
Introduction 
 Fonctionnement de la réplication 
MAITRE 
ESCLAVE 
Copie les 
transactions du 
maitre dans les relay 
log 
...
Introduction 
 Les différentes topologies 
• Maître/Esclave 
• Maître/Maître 
- Actif - Actif 
- Actif - Passif 
 Les mode...
Introduction 
Mise en oeuvre de la réplication 
MySQL : Administration (1Z0-883) alphorm.com™©
Sauvegarde et restauration 
La restauration 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : ht...
La restauration 
 Dépend du type de sauvegarde 
 Restauration à partir d’une sauvegarde à froid 
 Restauration à partir d’...
La restauration 
La réplication 
MySQL : Administration (1Z0-883) alphorm.com™©
La réplication 
SWITCHOVER 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphorm....
SWITCHOVER 
 Les principales variables de configuration 
• server-id 
• log-bin 
• binlog-do-db, binlog-do-table,binlog-ig...
SWITCHOVER 
 Les commandes SQL 
• SHOW MASTER STATUS 
• SHOW SLAVE STATUS 
• START | STOP SLAVE {IO_THREAD | SQL_THREAD } ...
SWITCHOVER 
 Rappel de la configuration du LAB 
MAITRE: 192.168.1.200 
ESCLAVE: 192.168.1.202 
Copie les 
transactions du ...
SWITCHOVER 
 Les étapes 
 Arrêter les écritures sur le nouveau maître et activer les log binaires 
 Relever la position de...
SWITCHOVER 
Introduction à l’optimisation des 
performances 
MySQL : Administration (1Z0-883) alphorm.com™©
Introduction à l’optimisation des 
performances 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum ...
Introduction à l’optimisation des performances 
 Les éléments de performances 
• Matériel 
- CPU, Mémoire, Disque (type, R...
Introduction à l’optimisation des performances 
 Eléments logiciel 
• Le cache de requête 
- query_cache_type (active ou p...
Introduction à l’optimisation des performances 
 Eléments logiciel 
• MyISAM 
- key_buffer_size (taille du cache d’index) ...
Introduction à l’optimisation des performances 
 Elément applicatif 
• Les indexes 
- Quand créer un index ? 
• Sur un cha...
Introduction à l’optimisation des performances 
 Elément applicatif 
• Les indexes 
- Les types d’index 
• Index uniques 
...
Introduction à l’optimisation des performances 
 Elément applicatif 
• La commande EXPLAIN 
- Permet d’afficher le plan d’...
Introduction à l’optimisation des performances 
Conclusion 
MySQL : Administration (1Z0-883) alphorm.com™©
Conclusion 
Le mot de la fin 
Site : http://www.alphorm.com 
Blog : http://www.alphorm.com/blog 
Forum : http://www.alphor...
Conlusion 
 Rappel des objectifs de la formation: 
 Comprendre et décrire l’architecture de MySQL 
 Installer et mettre à ...
Conlusion 
 A venir: 
 MySQL Tuning 
MySQL : Administration (1Z0-883) alphorm.com™©
Conclusion 
FIN 
Merci pour votre attention 
MySQL : Administration (1Z0-883) alphorm.com™©
Prochain SlideShare
Chargement dans…5
×

Alphorm.com Formation MySQL Administration(1Z0-883)

11 922 vues

Publié le

La formation complète est disponible ici:
http://www.alphorm.com/tutoriel/formation-en-ligne-mysql-1z0-883

MySQL est devenu le serveur de bases de données issu du monde libre le plus largement adopté par les entreprises.

A l'issue de cette formation, vous saurez installer et administrer MySQL au quotidien, d'une manière efficace et sécurisée.

Cette formation traite aussi des notions avancées de MySQL : réplication, sécurité, sauvegarde, performances et optimisation.

Publié dans : Technologie
0 commentaire
6 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
11 922
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7 547
Actions
Partages
0
Téléchargements
540
Commentaires
0
J’aime
6
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Alphorm.com Formation MySQL Administration(1Z0-883)

  1. 1. Présentation de la formation: MySQL : Administration (1Z0-883) Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  2. 2. Le formateur Noureddine DRISSI Expertise dans le domaine des bases de données 15 années d’expérience sur tous les SGBDR du marché (Mysql, Oracle, SQL Server, Postgresql,DB2, MongoDB) Issue de l’environnement bancaire • contact@valneo-xi.fr • Mon profil sur alphorm.com : http://www.alphorm.com/auteur/noureddine-drissi • Mes formations sur alphorm.com MySQL : Administration (1Z0-883) alphorm.com™©
  3. 3. Connaissances préalables Connaissances du système d’exploitation Linux/UNIX Expérience professionnelle du langage SQL Expérience professionnelle des bases de données relationnelles Expérience en matière de conception de bases de données MySQL : Administration (1Z0-883) alphorm.com™©
  4. 4. A propos de ce cours Objectifs : Comprendre et décrire l’architecture de MySQL Installer et mettre à jour MySQL Administrer et configurer MySQL Utiliser les outils MySQL tel que MySQL WorkBench Comprendre et mettre en oeuvre les différents moteurs de stockage (InnoDB, MyISAM, MEMORY, CSV...) Comprendre et gérer la sécurité sous MySQL Comprendre et mettre en oeuvre la réplication sous MySQL Comprendre et décrire les techniques d’optimisation de MYSQL Réaliser les opérations de sauvegarde et restauration MySQL : Administration (1Z0-883) alphorm.com™©
  5. 5. Plan du cours Module 1 : Introduction à MySQL Module 2 : Architecture de MySQL Module 3 : Installation de MySQL Module 4 : Configuration de MySQL Module 5 : Clients et outils MySQL Module 6 : Types de données MySQL Module 13 : Maintenance des tables sous MySQL Module 14 : Import et export des données sous MySQL Module 15 : Programmation dans MySQL Module 16 : Sauvegarde et restauration sous MySQL Module 7 : Obtention des métadonnées Module 8 : Transactions et verrous Module 9 : Moteur de stockage MySQL Module 10 : Le partionnnement sous MySQL Module 11 : Gestion des utilisateurs Module 12 : Gestion de la sécurité Module 17 : Réplication sous MySQL Module 18 : Introduction à l’optimisation des performances Module 19 : Conclusion MySQL : Administration (1Z0-883) alphorm.com™©
  6. 6. Certification Cette formation vous prépare à l'examen de la certification: MySQL for Database Administrators (1Z0-883) MySQL : Administration (1Z0-883) alphorm.com™©
  7. 7. Liens utiles Formations et certifications MySQL • http://education.oracle.com Téléchargement MySQL • http://www.oracle.com/fr/downloads/index.html Guide officiel : http://www.amazon.com/MySQL-Database- Administrator-Guide-1Z0- 883/dp/0071775781 MySQL : Administration (1Z0-883) alphorm.com™©
  8. 8. GO MySQL : Administration (1Z0-883) alphorm.com™©
  9. 9. Présentation de la formation: L’environnement Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  10. 10. Environnement Prés-requis Espace disque de 20G OS Linux Centos 6.x ou Windows (Server, XP, ...) Internet Nom: pyramide01 IP: 192.168.1.117 Espace disque: 20Go CPU: i7 (4 coeurs) RAM: 1Go OS: Centos 6.3 MySQL 5.6 MySQL : Administration (1Z0-883) alphorm.com™© C:
  11. 11. Introduction à MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  12. 12. Présentation de Mysql Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  13. 13. Présentation de MySQL Historique de MySQL Crée par la société TCX Le 23 mai 1995: première version de MySQL Maintenue par la société suédoise MySQL AB Floue sur l’origine du nom MySQL Le 16 janvier 2008: rachat de MySQL AB par Sun Microsystems pour 1 milliard de dollars 2009: acquisition de Sun Microsystems par Oracle Corporation après autorisation de la commission européenne 2009: création de MariaDB en tant que projet Open Source MySQL : Administration (1Z0-883) alphorm.com™©
  14. 14. Présentation de MySQL MySQL Système de gestion de base de données Open Source • Rapide, robuste et facile d’utilisation • Architecture client/serveur • Fourni avec de nombreux outils • Compatibilité avec de nombreux langages de programmation • Forte interopérabilité avec le langage PHP • Multiplateformes (Unix, Linux et Windows) • Interrogeable via SQL MySQL : Administration (1Z0-883) alphorm.com™©
  15. 15. Présentation de MySQL Les apports de la version 5 Les procédures stockées Les fonctions Les triggers Les curseurs Les vues Possibilité d’émuler les vues matérialisées Partitionnement des tables Réplication au niveau lignes MySQL : Administration (1Z0-883) alphorm.com™©
  16. 16. Présentation de MySQL Installation de MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  17. 17. Installation de MySQL Installation via package Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  18. 18. Installation via package Caractéristiques • La plus simple • Nécessite deux packages au minimum - mysql-server-version.rpm - mysql-client-version.rpm Exemple de commande sous Centos: shell yum install mysql-server mysql-client MySQL : Administration (1Z0-883) alphorm.com™©
  19. 19. Pré-installation Installation à partir des sources MySQL : Administration (1Z0-883) alphorm.com™©
  20. 20. Installation de MySQL Installation sous Windows Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  21. 21. Installation sous Windows Deux solutions • Utiliser l’installeur - Simple et rapide • Pré-requis: installation de .Net Framework 4.0 • Utiliser les binaires - Nécessite de créer un fichier de configuration de l’instance Note: téléchargement de Mysql à partir du site http://www.mysql.com MySQL : Administration (1Z0-883) alphorm.com™©
  22. 22. Installation sous Windows Mise à jour de MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  23. 23. Installation de MySQL Mise à jour de MySQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  24. 24. Mise à jour de MySQL Bonnes pratiques • En terme de version - Limiter le nombre d’écart en terme de version • Possibilté de passer d’une version mineure à une autre version mineure sans passer par toutes les versions mineures - Passer par toutes les versions manjeures dans le cas d’une mise à jour d’une version majeure à une autre version majeure MySQL : Administration (1Z0-883) alphorm.com™©
  25. 25. Mise à jour de MySQL Bonnes pratiques • La préparation - Lire la documentation de la version cible - Réaliser une sauvegarde complète systématiquement avant toute opération de mise à jour (logique et physique) MySQL : Administration (1Z0-883) alphorm.com™©
  26. 26. Mise à jour de MySQL Bonnes pratiques • Les étapes - Sauvegarde logique et physique - Arrêt du serveur MySQL - Mise à jour les binaires MySQL - Démarrage de MySQL - Vérification des tables • mysql_upgrade (vérifie toutes les tables + réparation si nécessaire + adaptation des droits) MySQL : Administration (1Z0-883) alphorm.com™©
  27. 27. Installation sous Windows Installation de la base fact MySQL : Administration (1Z0-883) alphorm.com™©
  28. 28. Installation de MySQL Installation de la base fact Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  29. 29. Installation de la base fact Sources (téléchargeable à partir de la plateforme Alphorm) • Exécution du script « fact.sql » shellmysql -uroot [ -P ] numero_port [ -p ] /chemin_du_script MySQL : Administration (1Z0-883) alphorm.com™©
  30. 30. Installation de la base fact Architecture de MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  31. 31. Architecture de MySQL Instance MySQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  32. 32. Instance MySQL Une instance est caractérisée par • Un fichier de configuration (my.cnf pour UNIX/Linux et my.ini pour Windows) • Un processus serveur mysqld • Une socket (accès local) ou port d’écoute TCP/IP (par defaut 3306) • Un moteur MySQL (basedir) • Un répertoire de stockage des données (datadir) • Un cache mémoire (avec des sous caches) • Des fichiers de logs (log binaire, log d’erreur, log des requêtes lentes, log général) • Des bases de données (mysql, information_schema et performance_schema) MySQL : Administration (1Z0-883) alphorm.com™©
  33. 33. Instance MySQL Configuration type du fichier my.cnf [mysql] port=3307 [mysqld] bind-address=0.0.0.0 port=3307 basedir=/usr datadir=/u101/mysql/data/instance01 socket=/u101/mysql/sockets/instance01/mysql3307.sock log-error=/u101/mysql/log/instance01/mysqld3307.log MySQL : Administration (1Z0-883) alphorm.com™©
  34. 34. Instance MySQL Les étapes d’initialisation d’une nouvelle instance • Création de l’aborescence • Attribution des droits • Création du fichier my.cnf • Exécution du script mysql_install_db pour initialiser les bases systèmes (mysql) shell mysql_install_db --basedir=chemin_moteur --datadir=chemin_de_stockage • Démarrage de l’instance shell mysqld --defaults-file=chemin/fichier_my.cnf MySQL : Administration (1Z0-883) alphorm.com™©
  35. 35. Instance MySQL Arrêt et démarrage d’une instance MySQL : Administration (1Z0-883) alphorm.com™©
  36. 36. Architecture de MySQL Arrêt et démarrage d’une instance Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  37. 37. Arrêt et démarrage d’une instance Démarrage de MySQL • Sous UNIX/LINUX - En utilisant le script /etc/init.d/mysqld shell /etc/init.d/mysqld start | restart - En utilisant le script mysqld_safe shell mysqld_safe --defaults-file=path --basedir=chemin_moteur --datadir=chemin_data --log- log-error= chemin_log --user=user_mysql - En utilisant directement le programme mysqld • Sous Windows - En utilisant le gestionnaire de services - Via la commande: net start nom_service MySQL : Administration (1Z0-883) alphorm.com™©
  38. 38. Arrêt et démarrage d’une instance Arrêt de MySQL • Sous UNIX/LINUX - En utilisant le script /etc/init.d/mysqld shell /etc/init.d/mysqld stop - En utilisant le programme mysqladmin shell mysqladmin [ -u user ] [ -p ] [ -h hostname ] shutdown • Sous Windows - En utilisant le gestionnaire de services - Via la commande: net stop nom_service MySQL : Administration (1Z0-883) alphorm.com™©
  39. 39. Arrêt et démarrage d’une instance Le cache MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  40. 40. Architecture de MySQL Le cache MySQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  41. 41. Le cache MySQL Architecture (cache d’une instance) Mémoire partagée Mémoire par thread key_buffer_size innodb_buffer_pool_size tmp_table_size sort_buffer_size table_cache query_cache read_buffer_size ... ... MySQL : Administration (1Z0-883) alphorm.com™©
  42. 42. Le cache MySQL Les logs MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  43. 43. Architecture de MySQL Les bases de données sous MySQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  44. 44. Les bases de données sous MySQL Racine datadir Bases de données Journaux Journaux binaires pour le moteur binaires pour le moteur innodb innodb Fichier data pour les tables innodb MySQL : Administration (1Z0-883) alphorm.com™©
  45. 45. Les bases de données sous MySQL Généralités • Une base MySQL est constituée d’un répertoire identique au nom de la base • Le répertoire contient des fichiers - Extension: .frm (structure de la table) • L’emplacement des bases est spécifié via le paramètre datadir • Une base = schema • Il existe trois bases de données par défaut lors de l’installation - mysql = base système - information_schema = dictionnaire de données (virtuelle) - performance_schema (depuis a version 5.5) MySQL : Administration (1Z0-883) alphorm.com™©
  46. 46. Les bases de données sous MySQL Caractéristiques • Le nom de la base de données est sensible à la casse - lower_case_table_names = 1 (pour forcer la création en miniscule) • Pour travailler, une session doit posséder une base de données courante. • Une référence à une table sans préfixe désigne cette table dans la base de données courante • Pour connaître la base de données courante mysql SELECT database(); • Pour changer de base de données courante mysql use nom_base MySQL : Administration (1Z0-883) alphorm.com™©
  47. 47. Les bases de données sous MySQL Création et suppression La commande CREATE DATABASE permet de créer une base de données. • Syntaxe générale mysql CREATE DATABASE nom_base; La commande DROP DATABASE permet de supprimer une base de données • Syntaxe générale mysql DROP DATABASE nom_base; MySQL : Administration (1Z0-883) alphorm.com™©
  48. 48. Les bases de données sous MySQL La configuration de MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  49. 49. Configuration de MySQL Les méthodes de configuartion Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  50. 50. Les méthodes de configuration Présentation • Configuration lors de la compilation avec le script « configure » • Dans le fichier de configuaration my.cnf (my.ini sous Windows) • Directement en tant que paramètre avec le programme mysqld • D’une manière dynamique à chaud MySQL : Administration (1Z0-883) alphorm.com™©
  51. 51. Les méthodes de configuration Configuration via le fichier my.cnf • Localisaton - Linux • /etc/, /etc/mysql, SYSCONFDIR, $MYSQL_HOME/ et ~/, .SYSCONFDIR • Visualisation la liste des répértoires utilisés par MySQL $ mysqld --help --verbose | grep less - Windows • WINDIRmy.ini, WINDIRmy.cnf, C:my.ini, C:my.cnf, INSTALLDIRmy.ini et INSTALLDIRmy.cnf Note: le fichier my.cnf est utilisé par tous les programmes fournis par MySQL (mysqld, mysql, mysqldump, mysqld_safe, myisamchk...) MySQL : Administration (1Z0-883) alphorm.com™©
  52. 52. Les méthodes de configuration Organisation du fichier my.cnf • Organiser en section - Chaque section correspond à un nom de programme sous la forme [ nom_programme ] - my_print_defaults nom_section permet de visualiser les options d’une section • Chaque paramètre est de la forme - nom_paramètre = valeur • Pour les options binaires, il suffit de spécifier le nom du paramètre - enable-innodb • Les lignes en commentaires commencent par « # » ou un « ; » • Possibilité d’inclure des fichiers - !include nom_fichier.cnf et !includedir chemin MySQL : Administration (1Z0-883) alphorm.com™©
  53. 53. Les méthodes de configuration Modèles de fichier my.cnf • my-small.cnf (poste de travail) • my-medium.cnf (poste de travail) • my-large.cnf (serveur avec mois de 2 de Go de RAM) • my-huge.cnf (pour les serveurs avec 2Go de RAM) • my-heavy-4G.cnf (pour les serveurs avec 4Go de RAM) MySQL : Administration (1Z0-883) alphorm.com™©
  54. 54. Les méthodes de configuration Paramétrage via le programme mysqld • Les paramètres sont précédés par « -- » • Les mêmes que ceux spécifiés dans le fichier « my.cnf » • Pour connaître la liste exhaustive des paramètres mysqld --help --verbose • Possibilité de spécifier un fichier en paramètre à mysqld - --defaults-file=fichier.cnf - --defaults-extra-file=fichier.cnf MySQL : Administration (1Z0-883) alphorm.com™©
  55. 55. Les méthodes de configuration Paramétrage dynamique de MySQL • Deux niveaux de modifications - Au niveau session: SET SESSION paramètre = valeur • Toutes les variables n’ont pas une portée au niveau session - Au niveau serveur: SET GLOBAL paramètre = valeur • Toutes les variables n’ont pas une portée SESSION et GLOBAL • Nécéssite d’avoir le privilège SUPER • Stockés en cache uniquement (perte après redémarrage du serveur) MySQL : Administration (1Z0-883) alphorm.com™©
  56. 56. Les méthodes de configuration Affichage de la configuration MySQL : Administration (1Z0-883) alphorm.com™©
  57. 57. Configuration de MySQL Affichage de la configuration Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  58. 58. Affichage de la configuration Les méthodes de visualisation des paramètres MySQL • Directement dans le fichier my.cnf • En utilisant la commande SHOW GLOBAL VARIABLES • En utilisant les tables GLOBAL_VARIABLES du schéma virtuel INFORMATION_SCHEMA - Pour visualiser les variables de niveau session, il faut utiliser la table SESSION_VARIABLES • En utilisant la commande SELECT @@global.nom_variable • En utilisant la commande STATUS pour afficher l’état du serveur MySQL : Administration (1Z0-883) alphorm.com™©
  59. 59. Affichage de la configuration Présentation des principaux paramètres MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  60. 60. Configuration de MySQL Les principaux paramètres MySQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  61. 61. Les principaux paramètres MySQL Configuration des logs Paramètres Description log-bin Activation des logs binaires log_output Permet de définir le type de journalisation (table, fichier ou aucun) slow_query_log_file Permet de définir l’amplacement du journal des requêtes lentes slow_query_log Activation du journal des requêtes lentes long_query_time Permet de définir la durée d’éxecution d’une requête avant de la journaliser log-error Permet de spécifier le journal des erreurs general_log_file Permet de spécifier le journal des traces générales ... MySQL : Administration (1Z0-883) alphorm.com™©
  62. 62. Les principaux paramètres MySQL Configuration de l’instance Paramètres Description port Numéro de port d’écoute pour les connexions TCP/IP socket Socket UNIX pour les connexions locales basedir Emplacement du moteur MySQL datadir Emplacement de stockages des données tmpdir Emplacement pour stocker les objets temporaires default_storage_engine Moteur de stockage du serveur defaults-file Fichier d’inialisation de l’instance max_connections Nombre de connexions maximum à l’instance MySQL : Administration (1Z0-883) alphorm.com™©
  63. 63. Les principaux paramètres MySQL Configuration du cache mémoire Paramètres Description innodb_buffer_pool_size Taille du cache pour les données et indexes innodb innodb_file_per_table Permet de créer un fichier .ibd par table innodb_log_buffer_size Taille du cache des journaux d’innodb innodb_log_file_size Taille des fichiers journaux d’innodb innodb_log_files_in_group Nombre de fichier journaux d’innodb max_heap_table_size Taille maximale des tables de type MEMORY tmp_table_size Taille maximale en mémoire des tables temporaires ... MySQL : Administration (1Z0-883) alphorm.com™©
  64. 64. Les principaux paramètres MySQL Clients et outils MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  65. 65. Clients et outils MySQL L’outil mysql Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  66. 66. L’outil mysql Caractéristiques • Permet d’éxecuter les commandes SQL: mysql [ options ] - Les principales options Options Description --help L’aide en ligne -h La machine qui héberge l’instance MySQL -u Le user qui se connecte à MySQL -p Le mot de passe -e Le script à éxécuter -P Le port d’écoute de l’instance -D Nom de la base ... MySQL : Administration (1Z0-883) alphorm.com™©
  67. 67. L’outil mysql L’outil mysqlshow MySQL : Administration (1Z0-883) alphorm.com™©
  68. 68. Clients et outils MySQL L’outil mysqlshow Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  69. 69. L’outil mysqlshow Caractéristiques • Permet de lister la liste des bases, tables et colonnes - Utilise les mêmes options de connection que le client MySQL • Syntaxe • mysqlshow [OPTIONS] | [BASE] | [TABLE] | [CHAMP] MySQL : Administration (1Z0-883) alphorm.com™©
  70. 70. L’outil mysqlshow L’outil mysqladmin MySQL : Administration (1Z0-883) alphorm.com™©
  71. 71. Clients et outils MySQL L’outil mysqladmin Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  72. 72. L’outil mysqladmin Caractéristiques • Utilitaire pour éxécuter des commandes d’administration - Utilise les mêmes options de connection que le client MySQL Commandes Description create Permet de créer une base de données drop Permet de supprimer une base de données ping Permet de tester l’accès à une instance MySQL processlist Permet d’afficher les sessions en cours refresh Vide de la mémoire toutes les tables, puis ferme et réouvre les fichiers de logs status Affiche des statistiques d’utilisation de l’instance shutdown Permet d’arrêter une instance variables Affiche la liste des variables de l’instance version Affiche la version de MySQL ... MySQL : Administration (1Z0-883) alphorm.com™©
  73. 73. L’outil mysqladmin Les outils graphiques d’administration MySQL : Administration (1Z0-883) alphorm.com™©
  74. 74. Clients et outils MySQL Les interfaces graphiques d’administration Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  75. 75. Les interfaces graphiques d’administration Les principaux outils graphiques • PHPMyAdmin (Open Source) • Pré-requis: - Un serveur web : Apache, IIS - Un interpréteur PHP • Plus maintenus - MySQL Administrator - MySQL Query Browser - MySQL Migration Toolkit MySQL : Administration (1Z0-883) alphorm.com™©
  76. 76. Les interfaces graphiques d’administration Les principaux outils graphiques • MySQL Workbench (anciennement MySQL Administrator) - Téléchargement: http://dev.mysql.com/downloads/tools/workbench/ - Documentation : http://dev.mysql.com/doc/workbench/en/index.html - Démos : http://www.mysql.fr/products/workbench/demo.html - MySQL Workbench Community: gratuit - MySQL Workbench Standard : environ 80€/an (version pro, incluant notamment des fonctionnalités de synchronisation, de validation et de documentation) - Différences entre les 2 versions : http://www.mysql.fr/products/workbench/features.html - Multi-plateforme: Windows, Linux et Mac OS MySQL : Administration (1Z0-883) alphorm.com™©
  77. 77. Les interfaces graphiques d’administration MySQL Workbench (outil unifié) • Permet - Créer,modifier ou supprimer des objets - De gérer les comptes utilisateurs - D’effectuer toutes les opérations d’administration d’une base de données - De faire de la modélisation (Design) - Du développement (Develop) - De l’administration (Administer) - De migrer des données d’un autre SGBDR vers MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  78. 78. Les interfaces graphiques d’administration Les types de données MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  79. 79. Les types de données MySQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  80. 80. Les types de données MySQL Les différents types • Trois grands types - Les types numériques - Les types Date et heure - Les types de chaînes MySQL : Administration (1Z0-883) alphorm.com™©
  81. 81. Les types de données MySQL Les types numériques • Types de données entiers Type Intervalle Taille (octets) Description TINYINT[(TM)] -127 à 128 1 Entiers très courts TINYINT[(TM)] UNSIGNED 0 à 255 1 Entiers très courts SMALLINT[(TM)] UNSIGNED -32768 à 32767 2 Entiers très courts MEDIUMINT[(TM)] -8388608 à 8388607 3 Entiers de taille moyenne MEDIUMINT[(TM)] UNSIGNED 0 à 16777215 3 Entiers de taille moyenne INT[(TM)] -2^31 à 2^31-1 4 Entiers INT[(TM)] UNSIGNED 0 à 2^32-1 4 Entiers BIGINT[(TM)] -2^63 à 2^63-1 8 Entiers larges BIGINT[(TM)] UNSIGNED 0 à 2^64-1 8 Entiers larges MySQL : Administration (1Z0-883) alphorm.com™©
  82. 82. Les types de données MySQL Les types numériques • Types de données à virgule flottante Type Intervalle Taille (octets) Description FLOAT(précision) Dépend de la précision varie =24 pour un nombre simple 24 et =53 pour un nombre en double précision FLOAT[(TM,P)] + ou -1.175494351E-38 4 Simple précision = FLOAT(4) à + ou -3.402823466E+38 DOUBLE[(TM,P)] + ou -1.797693134862357E+308 à + ou -2.2250738585072014E-308 8 Double précision = FLOAT(8) DECIMAL[(TM,P)] varie Enregistré dans un CHAR MySQL : Administration (1Z0-883) alphorm.com™©
  83. 83. Les types de données MySQL Les types Date et heure • Types de données date et heure Type Intervalle Description DATE 1000-01-01 à 9999-12-31 Date affichée au format YYYY-MM-DD TIME -838:59:59 à 838:59:59 Heure affichée au format HH:MM:SS DATETIME 1000-01-01 00:00:00 Date et heure affichées au format YYYY-MM-MySQL à 9999-12-3 23:59:59 MM-DD HH:MM:SS TIMESTAMP[(TM)] 1970-01-01 00:00:00 Horodatage YEAR[(TM)] 70 à 69 (1970 à 2069) Année affichés sur 2 ou 4 digits : Administration (1Z0-883) alphorm.com™©
  84. 84. Les types de données MySQL Les types de chaînes • Types de données de chaîne classique Type Intervalle Description [NATIONAL] CHAR(TM) 1 à 255 Chaîne de longueur fixe [NATIONAL] VARCHAR(TM) 1 à 255 Chaîne de longueur variable MySQL : Administration (1Z0-883) alphorm.com™©
  85. 85. Les types de données MySQL Les types de chaînes • Types de données de chaîne TEXT et BLOB Type Intervalle Description TINYBLOB 255 (2^8-1) Objet binaire court TINYTEXT 255 (2^8-1) Text court BLOB 65535 (2^16-1) Objet binaire de taille normale TEXT 65535 (2^16-1) Texte de taille normale MEDIUMBLOB 16777215 (2^24-1) Objet binaire de taille moyenne MEDIUMTEXT 16777215 (2^24-1) Texte de taille moyenne LONGBLOB 4294967295 (2^32-1) Objet binaire de grande taille LONGTEXT 4294967295 (2^32-1) Texte de grande taille MySQL : Administration (1Z0-883) alphorm.com™©
  86. 86. Les types de données MySQL Les types de chaînes • Types de données de chaîne ENUM et SET Type Nombre de valeur MAX Description ENUM(‘valeur1’,’valeur2’,’val eur2’,...) 65535 Les valeurs doivent obligatoirement êtres contenu dans la liste SET(‘valeur1’,’valeur2’,...) 64 Text court MySQL : Administration (1Z0-883) alphorm.com™©
  87. 87. Les types de données MySQL Optimisation du type shell SELECT colonne from TABLE PROCEDURE ANALYSE() G MySQL : Administration (1Z0-883) alphorm.com™©
  88. 88. Les types de données MySQL Obtention des métadonnées MySQL : Administration (1Z0-883) alphorm.com™©
  89. 89. Obtention des métadonnées Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  90. 90. Obtention des métadonnées La base INFORMATION_SCHEMA Constitue le « dictionnaire de données » MySQL Disponible depuis la version 5.0.2 de MySQL Les objets sont des vues (non modifiable) Base de données (schéma) virtuelle: pas de fichiers physiques Fournis un accès aux métadonnées sur • Les bases • Les tables, les colonnes, les contraintes, les vues, etc., des bases de données stockées sur le serveur MySQL. • Les types de données des colonnes • ... MySQL : Administration (1Z0-883) alphorm.com™©
  91. 91. Obtention des métadonnées La base INFORMATION_SCHEMA Les principales vues Vues Description SCHEMATA Fournit des informations sur les bases de données TABLES Fournit des informations sur les tables COLUMNS Fournit des informations sur les colonnes dans les tables STATISTICS Fournit des informations sur les tables d’index USER_PRIVILEGES Fournit des informations sur les droits globaux SCHEMA_PRIVILEGES Fournit des informations sur les droits des schémas TABLES_PRIVILEGES Fournit des informations sur les droits des tables COLUMN_PRIVILEGES Fournit des informations sur les droits reliés aux colonnes CHARACTER_SETS Fournit des informations sur les jeux de caractèrs disponbibles ROUTINES Fournit des informations sur les procédures stockées et les fonctions VIEWS Fournit des informations sur les vues dans les bases ... MySQL : Administration (1Z0-883) alphorm.com™©
  92. 92. Obtention des métadonnées Moteurs de stockage MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  93. 93. Moteurs de stockage MySQL Présentation Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  94. 94. Moteurs de stockage MySQL Caractéristiques MySQL Un moteur de stockage, c’est quoi ? • Spécifie la manière dont seront stockés et utilisés les données • Les plus utilisés: INNODB, MYISAM et MEMORY Architecture pluggable storage engine • Possibilité d’utiliser plusieurs moteurs dans une même base de données • Le choix du moteur se fait lors de la création de la table • Le choix du moteur est réversible (ALTER TABLE) MySQL : Administration (1Z0-883) alphorm.com™©
  95. 95. Moteurs de stockage MySQL Le choix du moteur Dépend de • La manière de stocker les données • La criticité des données • La gestion ou pas des transactions • La stratégie de sauvegarde/restauration • Les types de verrous • La persistance des données • La réplication MySQL : Administration (1Z0-883) alphorm.com™©
  96. 96. Moteurs de stockage MySQL Les moteurs les plus connus • INNODB • MYISAM • MEMORY • ARCHIVE • CSV • FEDERATED • ... MySQL : Administration (1Z0-883) alphorm.com™©
  97. 97. Moteurs de stockage MySQL Quelques commandes utiles Commandes Description SHOW ENGINES Affiche la liste des moteurs disponibles SELECT * FROM INFORMATION_SCHEMA.ENGINES; Idem que SHOW ENGINES SHOW CREATE TABLE nom_table; Affiche des informations sur la structure d’une table SHOW TABLE STATUS LIKE 'CATEGORIES' G Fournit des informations sur la structure d’une table SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE,ENGINE FROM TABLES WHERE TABLE_SCHEMA=‘nom_base'; Fournit des informations sur les tables d’une base de données en utilisation la base INFORMATION_SCHEMA MySQL : Administration (1Z0-883) alphorm.com™©
  98. 98. Moteurs de stockage MySQL Le moteur INNODB MySQL : Administration (1Z0-883) alphorm.com™©
  99. 99. Moteurs de stockage MySQL Le moteur InnoDB Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  100. 100. Le moteur InnoDB Caractéristiques générales du moteur InnoDB Moteur par défaut Les données et les indexes sont stockés dans des fichiers appelés espace de table (tablespace) InnoDB fournit à MySQL un gestionnaire de table transactionnelle • Conforme à la norme ACID (Atomique, Cohérent, Isolé et Durable) Prise en compte de COMMIT et ROLLBACK Capacités de restauration après crash InnoDB utilise un verrouillage au niveau des lignes Fournit des lectures cohérentes comme Oracle, sans verrous Supportent les contraintes de clés étrangères (FOREIGN KEY) et l’intégrité référentielle Possibilité de réaliser des sauvegardes à chaud (logique et physique) MySQL : Administration (1Z0-883) alphorm.com™©
  101. 101. Le moteur InnoDB Gestion du stockage du moteur InnoDB MySQL enregistre la structure de table dans le fichier .frm (dans le répertoire de base de données) Deux types de stockage pour les données • Un fichier par table avec l’extension .ibd (par defaut depuis la version 5.6.6) - innodb_file_per_table = ON - Possibilité de stocker le fichier .ibd dans un emplacement spécifique (depuis la version 5.6) • CREATE TABLE spécifications DATA DIRECTORY = ‘chemin’. • CREATE INDEX nom_index ON nom_table(nom_champ) INDEX DIRECTORY = ‘chemin’; • Dans un un ou plusieurs tablespaces (fichiers ibdata) - innodb_data_file_path = ibdata1:12M:autoextend • Contient le dictionnaire de données et les undo logs pour l’annulation des transactions MySQL : Administration (1Z0-883) alphorm.com™©
  102. 102. Le moteur InnoDB Architecture globale du moteur Innodb • Utilise deux journaux de transactions: ib_logfile0 et ib_logfile1 - Permet de maintenir la cohérene des données après un arrêt intempestif - Nombre de fichiers journaux défini dans le paramètre innodb_log_files_in_group - Possibilité de modifier la taille des fichiers journaux innodb_log_file_size Utilise des « undo logs » pour l’annulation des transactions (rollback) • - Stockés dans le fichier spécifié par le paramètre innodb_data_file_path - Possibilité (depuis la 5.6) de séparer les « undo logs » dans un tablespace dédié • innodb_undo_directory : répértoire pour le tablespace des « undo logs » • innodb_undo_logs : nombre de rollback segments du tablespace • innodb_undo_tablespaces : nombre de tablespace contenant des « undo logs » MySQL : Administration (1Z0-883) alphorm.com™©
  103. 103. Le moteur InnoDB Fonctionnement du moteur Innodb Mémoire innodb_innodb_log_buffer_size buffer_pool_size innodb_flush_log_at_trx_commit commit Disques ib_logfile0 .ibd ibdata1 innodb_data_file_path innodb_log_files_in_group innodb_log_file_size CHECKPOINTS MySQL : Administration (1Z0-883) alphorm.com™©
  104. 104. Le moteur InnoDB Le moteur MyISAM MySQL : Administration (1Z0-883) alphorm.com™©
  105. 105. Moteurs de stockage MySQL Le moteur MyISAM Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  106. 106. Le moteur MyISAM Caractéristiques générales du moteur MyISAM Ses particularités sont : • Rapidité en lecture • Recherche fulltexte • Verrouillage au niveau des tables • Pas de sauvegarde à chaud MyISAM utilise trois fichiers • Un fichier pour la structure de la table (.frm) par table: nom_table.frm • Un fichier de données (.MYD): nom_table.MYD • Un fichier d'index (.MYI) par table: nom_table.MYI Non transactionnel Ne supporte pas les clés étrangères MySQL : Administration (1Z0-883) alphorm.com™©
  107. 107. Le moteur MyISAM Types de format pour les tables MyISAM Statique (par défaut sauf pour les types VARCHAR, VARBINARY, BLOB et TEXT) • Rapide • Moins sensible aux crashs Dynamique • Prend moins de place sur le disque • Moins rapide et plus sensible aux crashs étant donné les entêtes nécessaires Compressé • La table utilise très peu d'espace • En lecture seule • Les performances en lectures sont peu impactées • Compression avec myisampack et décompression + mise à jour des indexes avec myisamchk MySQL : Administration (1Z0-883) alphorm.com™©
  108. 108. Le moteur MyISAM Le moteur MEMORY MySQL : Administration (1Z0-883) alphorm.com™©
  109. 109. Moteurs de stockage MySQL Le moteur MEMORY Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  110. 110. Le moteur MEMORY Caractéristiques générales du moteur MEMORY Existe depuis la version 3.23.25 Moteur non-transactionnel et non support des clés étrangères Utilise des index hachés au lieu du standard B-Tree Les indexes et les données des tables sont stockées en mémoire uniquement (sauf la structure .frm) Avantage : table extrêmement rapides Inconvénient : un plantage du serveur mène à une perte des données Domaines d'application : • Données volatiles • Tables temporaires • Fort besoin en accès rapide aux données ; MySQL : Administration (1Z0-883) alphorm.com™©
  111. 111. Le moteur MEMORY Les autres moteurs MYSQL MySQL : Administration (1Z0-883) alphorm.com™©
  112. 112. Moteurs de stockage MySQL Le autres moteurs MySQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  113. 113. Les autres moteurs MySQL Le moteur Archive • Utilise un fichier .frm pour la structure et un fichier .ARZ pour les données • Compression des données lors du stockage • Utilisé pour stocker des données brutes • Moteur non-transactionnel et non support des clés étrangères • Seules deux commandes sont possibles : SELECT et INSERT • Domaines d'application : - Enregistrement de logs MySQL : Administration (1Z0-883) alphorm.com™©
  114. 114. Les autres moteurs MySQL Le moteur CSV • Stock les données au format CSV (Comma Separated Values) • La table est représentée par - Un fichier nom_table.CSV pour les données, un fichier nom_table.frm pour la structure et un fichier nom_table.CSM pour l’état l’état et le nombre de ligne • Non transactionnel • Pas de sauvegarde à chaud • Refus d’index • Verrou au niveau table MySQL : Administration (1Z0-883) alphorm.com™©
  115. 115. Les autres moteurs MySQL Le moteur MERGE Offre la possibilité de grouper des tables de structures identique pour en faciliter la manipulation Une table MERGE est identifiable • par un fichier d’extension .frm qui est la structure de la table de définition et un fichier d’extension .MRG qui contient la liste des fichiers index (.MYI) Toutes les tables utilisées par la table MERGE doivent se trouver dans la même base de données que la table MERGE MySQL : Administration (1Z0-883) alphorm.com™©
  116. 116. Les autres moteurs MySQL Le moteur FEDERATED Permet de déporter les données sur un serveur distant Seule une copie de la définition de la table est stockée sur le serveur local Accède à des tables dans une base de données distante, plutôt que dans des fichiers locaux Avantages • Permet de répartir la charge • Pointer sur plusieurs bases de données distantes si elles acceptent les accès distants • Supporte les indexes MySQL : Administration (1Z0-883) alphorm.com™©
  117. 117. Les autres moteurs MySQL Autres moteurs • NDB Cluster • XtraDB MySQL : Administration (1Z0-883) alphorm.com™©
  118. 118. Les autres moteurs MySQL Récapitulatif des caractéristiques pour les principaux moteurs Moteurs Type de verrous Gestion des transactions Stockage sur disque Sauvegarde à chaud Innodb Ligne MyISAM Table Memory Table Archive Ligne CSV Table Federated Table NDB Cluster Ligne XtraDB Ligne MySQL : Administration (1Z0-883) alphorm.com™©
  119. 119. Les autres moteurs MySQL Transactions et verrous MySQL : Administration (1Z0-883) alphorm.com™©
  120. 120. Les trasactions et verrous Le autres moteurs MySQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  121. 121. Les autres moteurs MySQL Le moteur Archive • Utilise un fichier .frm pour la structure et un fichier .ARZ pour les données • Compression des données lors du stockage • Utilisé pour stocker des données brutes • Moteur non-transactionnel et non support des clés étrangères • Seules deux commandes sont possibles : SELECT et INSERT • Domaines d'application : - Enregistrement de logs MySQL : Administration (1Z0-883) alphorm.com™©
  122. 122. Les autres moteurs MySQL Le moteur CSV • Stock les données au format CSV (Comma Separated Values) • La table est représentée par - Un fichier nom_table.CSV pour les données, un fichier nom_table.frm pour la structure et un fichier nom_table.CSM pour l’état l’état et le nombre de ligne • Non transactionnel • Pas de sauvegarde à chaud • Refus d’index • Verrou au niveau table MySQL : Administration (1Z0-883) alphorm.com™©
  123. 123. Les autres moteurs MySQL Le moteur FEDERATED Permet de déporter les données sur un serveur distant Seule une copie de la définition de la table est stockée sur le serveur local Accède à des tables dans une base de données distante, plutôt que dans des fichiers locaux Avantages • Permet de répartir la charge • Pointer sur plusieurs bases de données distantes si elles acceptent les accès distants • Supporte les indexes MySQL : Administration (1Z0-883) alphorm.com™©
  124. 124. Les autres moteurs MySQL Autres moteurs • NDB Cluster • XtraDB MySQL : Administration (1Z0-883) alphorm.com™©
  125. 125. Les autres moteurs MySQL Récapitulatif des caractéristiques pour les principaux moteurs Moteurs Type de verrous Gestion des transactions Stockage sur disque Sauvegarde à chaud Innodb Ligne MyISAM Table Memory Table Archive Ligne CSV Table Federated Table NDB Cluster Ligne XtraDB Ligne MySQL : Administration (1Z0-883) alphorm.com™©
  126. 126. Les autres moteurs MySQL Transactions et verrous MySQL : Administration (1Z0-883) alphorm.com™©
  127. 127. Les transactions et verrous Les niveaux d’isolation Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  128. 128. Les niveaux d’isolation Les niveaux d’isolation • MySQL offre quatre niveaux d’isolation - REPEATABLE-READ (par défaut) - READ-COMMITTED - READ-UNCOMMITTED - SERIALIZABLE • Identique à REPEATABLE-READ et toutes les lectures sont converties en SELECT ... LOCK IN SHARE MODE • Pour connaître le niveau d’isolation du serveur MySQL - show global variables like ‘%isolation%’; - select @@global.tx_isolation; MySQL : Administration (1Z0-883) alphorm.com™©
  129. 129. Les niveaux d’isolation Possibilité de modifier le niveau d’isolation • Au niveau instance - Dans le fichier my.cnf • Paramètre transaction-isolation = {READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE} - Avec la commande SET GLOBAL • Au niveau session • Avec la commande SET SESSION • Syntaxe de la commande SET • SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE} MySQL : Administration (1Z0-883) alphorm.com™©
  130. 130. Les niveaux d’isolation Les verrous MySQL : Administration (1Z0-883) alphorm.com™©
  131. 131. Les transactions et verrous Les verrous Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  132. 132. Les verrous Méthodes de verrouillage • Verrouillage au niveau table pour les moteurs (MyISAM, MEMORY) • Verrouillage au niveau ligne (InnoDB) - Mécanisme de MVCC (MultiVersion Concurrency Control) Types de verrous • Verrous en lecture (partagé) • Verrous en écriture (exclusif) Le processus de verrouillage • Si il n'y a pas de verrou sur la table, pose un verrou en écriture dessus. • Sinon, soumet une requête de verrouillage dans la queue de verrous d'écriture MySQL : Administration (1Z0-883) alphorm.com™©
  133. 133. Les verrous Verrou explicite • La commande à utiliser est LOCK TABLES - READ pose un verrou partagé ; - WRITE pose un verrou exclusif ; - READ_LOCAL pose un verrou partagé permettant les insertions concurrentes pour les tables MyISAM. MySQL : Administration (1Z0-883) alphorm.com™©
  134. 134. Les verrous Le partitionnement MySQL : Administration (1Z0-883) alphorm.com™©
  135. 135. Le partitionnement Présentation Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  136. 136. Le partitionnement Introduction • Permet de diviser une table physique en plusieurs partitions en fonction des données qu’elle contient Pourquoi partitionner ? • Pour gérer la montée en charge • Pour gérer de gros volumes de données • Pour limiter les accès aux niveau des IO • Pour paralléliser les opérations de lecture et d’écriture au niveau disque • Effacer rapidement les données (scaling back) MySQL : Administration (1Z0-883) alphorm.com™©
  137. 137. Le partitionnement Les pré-requis pour utiliser le partitionnement mysql SHOW PLUGINS Les contraintes liés au partitionnement • Toutes les partitions d’une même table doivent utiliser le même moteur de stockage • Limiter à 8192 partitions sous-partitions comprises MySQL : Administration (1Z0-883) alphorm.com™©
  138. 138. Le partitionnement Les principaux types de partitionnement • Le partitionnement de type RANGE • Le partitionnement de type LIST • Le partitionnement de type HASH • Le partitionnement de type KEY MySQL : Administration (1Z0-883) alphorm.com™©
  139. 139. Le partitionnement Le partitionnement par RANGE MySQL : Administration (1Z0-883) alphorm.com™©
  140. 140. Le partitionnement Le partitionnement de type RANGE Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  141. 141. Le partitionnement de type RANGE Le partitionnement de type RANGE • Caractéristiques - Permet de séparer physiquements les données d’une table par intervalles de valeurs • Syntaxe CREATE TABLE nom_table ( champ1 type contrainte, ... ) PARTITION BY RANGE (expression) PARTITION nom_partition VALUES LESS THAN (valeur), .. PARTITION nom_partition VALUES LESS THAN MAXVALUE ); MySQL : Administration (1Z0-883) alphorm.com™©
  142. 142. Le partitionnement de type RANGE Le partitionnement de type RANGE COLUMNS • Caractéristiques - A partir de MySQL 5.5 - Permet d’effectuer le partitionnement d’une table en fonction d’une ou plusieurs colonnes • Syntaxe CREATE TABLE nom_table ( champ1 type contrainte, ... ) PARTITION BY RANGE (champ,champ) PARTITION nom_partition VALUES LESS THAN (valeur,valeur), .. PARTITION nom_partition VALUES LESS THAN (MAXVALUE,MAXVALUE) ); MySQL : Administration (1Z0-883) alphorm.com™©
  143. 143. Le partitionnement de type RANGE Le partitionnement de type LIST MySQL : Administration (1Z0-883) alphorm.com™©
  144. 144. Le partitionnement Le partitionnement de type LIST Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  145. 145. Le partitionnement de type LIST Le partionnement de type LIST • Caractéristiques - Permet de définir une liste de nombres entiers unique pour chaque partition - MySQL déclenche une erreur lors d’insertion avec des valeurs non compris dans la liste des valeurs partitionnées • Syntaxe CREATE TABLE nom_table ( champ1 type contrainte, ... ) PARTITION BY LIST (expression) PARTITION nom_partition VALUES IN (NULL), PARTITION nom_partition VALUES IN (valeur,valeur,...) .. ); MySQL : Administration (1Z0-883) alphorm.com™©
  146. 146. Le partitionnement de type LIST Le partionnement de type LIST COLUMNS • Caractéristiques - Permet de séparer physiquement les données d’une table en fonction d’une ou plusieurs colonnes (ENTIER, CHAR, VARCHAR, BINARY ou VARBINARY) - Pas de possibilité d’avoir une expression comme critère de partitionnement - La comparaison lors de l’affectation des données se fait sur l’ensemble des valeurs MySQL : Administration (1Z0-883) alphorm.com™©
  147. 147. Le partitionnement de type LIST Le partitionnement de type HASH MySQL : Administration (1Z0-883) alphorm.com™©
  148. 148. Le partitionnement Le partitionnement de type HASH Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  149. 149. Le partitionnement de type HASH Le partionnement de type HASH • Caractéristiques - Permet de distribuer d’une manière équitable les données d’une table sur un nombre de partitions défini • Syntaxe CREATE TABLE nom_table ( champ1 type contrainte, ... ) PARTITION BY HASH (expression) PARTITIONS nombre_partition; MySQL : Administration (1Z0-883) alphorm.com™©
  150. 150. Le partitionnement de type HASH Le partitionnement de type KEY MySQL : Administration (1Z0-883) alphorm.com™©
  151. 151. Le partitionnement Le partitionnement de type KEY Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  152. 152. Le partitionnement de type KEY Le partionnement de type KEY • Caractéristiques - Presque identique au type HASH • Différences • Clé de partitionnement vide supporté • La clé de partitionnement peut être de type châine • Les données ne sont pas distribuées de manière homogème sur toutes les partitions MySQL : Administration (1Z0-883) alphorm.com™©
  153. 153. Le partitionnement de type KEY Le partionnement de type KEY • Syntaxe CREATE TABLE nom_table ( champ1 type contrainte, ... ) PARTITION BY KEY (liste_de_colonne) PARTITIONS nombre_partition; MySQL : Administration (1Z0-883) alphorm.com™©
  154. 154. Le partitionnement de type KEY Le sous partitionnement MySQL : Administration (1Z0-883) alphorm.com™©
  155. 155. Le partitionnement Le sous-partitionnement Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  156. 156. Le sous-partitionnement Caractéristiques • Consiste à partitionner une partition de type RANGE ou LIST • Les sous-partitions doivent êtres de type HASH ou KEY • Syntaxe CREATE TABLE nom_table ( champ1 type contrainte, ... ) PARTITION BY RANGE | LIST (expression) SUBPARTITION BY HASH | KEY (expression) SUBPARTITION nom_partition ( definition_des_partitions ) MySQL : Administration (1Z0-883) alphorm.com™©
  157. 157. Le sous-partitionnement Gestion des utilisateurs MySQL : Administration (1Z0-883) alphorm.com™©
  158. 158. Gestion des utilisateurs La gestion des comptes MySQL Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  159. 159. La gestion des comptes MySQL Présentation Basé sur un système de privilèges simple et performant Chaque utilisateur qui souhaite se connecter doit s’authentifier auprès du serveur MySQL Aucun lien entre les utilisateurs MySQL et les utilisateurs Linux ou Windows. L’identification est une combinaison de trois critères • l’hôte (la machine) depuis lequel la connexion est initiée • un nom d’utilisateur • un mot de passe. MySQL : Administration (1Z0-883) alphorm.com™©
  160. 160. La gestion des comptes MySQL Caractéristiques Deux utilisateurs crées après l’installation • root : super utilisateur (sans mot de passe) • L’utilisateur anonyme, c’est-à-dire tout utilisateur non connu du système.. MySQL : Administration (1Z0-883) alphorm.com™©
  161. 161. La gestion des comptes MySQL Système d’authentification Les utilisateurs et les privilèges sont stockés la base de données mysql Les tables suivantes sont utilisées pour gérer les privilèges des utilisateurs • user • db • host • tables_priv • columns_priv • procs_priv MySQL : Administration (1Z0-883) alphorm.com™©
  162. 162. La gestion des comptes MySQL Système d’authentification Accès au serveur • Contrôle de l’accès en deux temps - Vérification de l’identité de l’utilisateur à sa connexion (via l’hôte de connexion, le nom de l’utilisateur et le mot de passe). - Vérification de chacune des requêtes envoyées au serveur pour s’assurer que l’utilisateur a les privilèges nécessaires. MySQL : Administration (1Z0-883) alphorm.com™©
  163. 163. La gestion des comptes MySQL Système d’authentification Description des étapes de connexion • Etape 1: - MySQL utilise la table user pour vérifier qu’un utilisateur est autorisé à se connecter. - Les champs (Host, User et Password) sont utilisés pour valider la connexion. • Etape 2: - MySQL vérifie chaque requête envoyée afin de s’assurer que l’utilisateur a les privilèges nécessaires à son exécution. - Ces privilèges sont vérifiés à partir des tables user, db, table_priv et columns_priv MySQL : Administration (1Z0-883) alphorm.com™©
  164. 164. La gestion des comptes MySQL Système d’authentification Description des étapes de connexion • Etape 1: - MySQL utilise la table user pour vérifier qu’un utilisateur est autorisé à se connecter. - Les champs (Host, User et Password) sont utilisés pour valider la connexion. • Etape 2: - MySQL vérifie chaque requête envoyée afin de s’assurer que l’utilisateur a les privilèges nécessaires à son exécution. - Ces privilèges sont vérifiés à partir des tables user, db, tables_priv et columns_priv MySQL : Administration (1Z0-883) alphorm.com™©
  165. 165. La gestion des comptes MySQL Gestion des comptes utilisateurs Création d’un compte utilisateur • Syntaxe: CREATE USER ‘utilisateur’@’hôte’ IDENTIFIED BY ‘mot_de_passe’; Modification du mot de passe • Syntaxe: SET PASSWORD FOR ‘utilisateur’@’hôte’=PASSWORD(‘mot_de_passe’); Suppression d’un compte utilisateur • Syntaxe: DROP USER ‘utilisateur’@’hôte’; MySQL : Administration (1Z0-883) alphorm.com™©
  166. 166. La gestion des comptes MySQL Gestion des privilèges utilisateurs MySQL : Administration (1Z0-883) alphorm.com™©
  167. 167. Gestion des utilisateurs La gestion privilèges Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  168. 168. La gestion des privilèges Les commandes GRANT/REVOKE GRANT • permet d’attribuer des privilèges • Permet de créer des utilisateurs Syntaxe générale GRANT privileges [ columns ], ... ON item | [ * ] | [ *.* ] TO username [ IDENTIFIED BY ‘password’ ] [ WITH GRANT OPTION ] MySQL : Administration (1Z0-883) alphorm.com™©
  169. 169. La gestion des privilèges Les commandes GRANT/REVOKE REVOKE • permet de retirer des privilèges • Ne permet pas de supprimer des utilisateurs Syntaxe générale REVOKE privileges [columns] | ALL, ... ON item | [ * ] | [ *.* ] FROM username; MySQL : Administration (1Z0-883) alphorm.com™©
  170. 170. La gestion des privilèges La commande SHOW GRANTS Permet de visualiser les droits des utilisateurs • Syntaxe générale SHOW GRANTS FOR username; MySQL : Administration (1Z0-883) alphorm.com™©
  171. 171. La gestion des privilèges Vérification des requêtes MySQL vérifie chaque requête envoyée afin de s’assurer que l’utilisateur a les privilèges nécessaires à son exécution. Ces privilèges sont vérifiés à partir des tables user, db, table_priv et columns_priv Transcription du calcul fait sur une requête • Accès = privilèges globaux OU privilèges db OU privilèges de table OU privilèges de colonnes. MySQL : Administration (1Z0-883) alphorm.com™©
  172. 172. La gestion des privilèges Les privilèges globaux (instance) Stockés dans la table user de la base mysql • Liste - CREATE TEMPORARY TABLES, CREATE USER, FILE, GRANT OPTION, LOCK TABLES, PROCESS, PROXY, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHOW SCHEMAS/DATABASES, SHUTDOWN et SUPER MySQL : Administration (1Z0-883) alphorm.com™©
  173. 173. La gestion des privilèges Les privilèges au niveau bases Stockés dans la table db de la base mysql • Liste - ALTER, CREATE, CREATE TEMPORARY TABLE, CREATE VIEW, DROP, EVENT, GRANT OPTION, INDEX, INSERT, LOCK TABLES, SELECT, SHOW VIEW et UPDATE MySQL : Administration (1Z0-883) alphorm.com™©
  174. 174. La gestion des privilèges Les privilèges au niveau objets (tables) et colonnes Stockés dans les tables tables_priv et columns_priv de la base mysql • Liste au niveau des tables - ALTER, CREATE, DELETE, DROP, GRANT OPTION, INDEX, INSERT, SELECT, TRIGGER et UPDATE • Liste au niveau des colonnes - INSERT, SELECT et UPDATE MySQL : Administration (1Z0-883) alphorm.com™©
  175. 175. La gestion des privilèges Les privilèges au niveau procédures et fonctions stockées Stockés dans la table procs_priv de la base mysql • Liste - CREATE ROUTINE, ALTER ROUTINE, EXECUTE et GRANT OPTION MySQL : Administration (1Z0-883) alphorm.com™©
  176. 176. La gestion des privilèges Gestion de la sécurité MySQL : Administration (1Z0-883) alphorm.com™©
  177. 177. Gestion de la sécurité Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  178. 178. Gestion de la sécurité Les bonnes pratiques Suppression des comptes anonymes Mot de passe et privilèges Audit des comptes avec le privilège FILE et PROCESSLIST Cryptage des données sensibles ( PASSWORD(), ENCRYPT(), ENCODE(), DECODE() ou MD5() ) Sécuriser l’échange avec SSH et SSL MySQL : Administration (1Z0-883) alphorm.com™©
  179. 179. Gestion de la sécurité Les plug-ins Plug-ins d’authentification (à partir de MySQL 5.6) • mysql_native_password - par défaut • mysql_old_password - méthode de hachage des versions MySQL 4.1.1 • sha256_password - Utilisation de l’algorithme de hachage SHA-256 - Paramètre authentication-plugin de la section [ mysqld ] - Paramétrable lors de la création de l’utilisateur MySQL : Administration (1Z0-883) alphorm.com™©
  180. 180. Gestion de la sécurité Les plug-ins Plug-ins de validation des mots de passe • validate_password - Permet de tester le degré de sécurté d’un mot de passe • Utilise 6 variables • validate_password_policy_number • LOW ou 0, MEDIUM ou 1, STRONG ou 2 • validate_password_length • validate_password_number_count • validate_password_mixed_case_count • validate_password_special_char_count MySQL : Administration (1Z0-883) alphorm.com™©
  181. 181. Gestion de la sécurité Les plug-ins Plug-ins de validation des mots de passe • La fonction VALIDATE_PASSWORD_STRENGTH() - Permet de renvoyer un code en fonction du niveau de sécurité du mot de passe • 0 : taille 4 • 25 : = 4 et à la valeur de validate_password_length • 50 : si validate_password_policy_number=‘LOW’ est respectée • 75 : si validate_password_policy_number=‘MEDIUM’ est respectée • 100 : si validate_password_policy_number=‘STRONG’ est respectée MySQL : Administration (1Z0-883) alphorm.com™©
  182. 182. Gestion de la sécurité Expiration du mot de passe Possibilité de forcer le changement d’un mot de passe • ALTER USER username PASSWORD EXPIRE; MySQL : Administration (1Z0-883) alphorm.com™©
  183. 183. Gestion de la sécurité Utilitaire de configuration des mots de passe Outil mysql_config_editor • Nouveauté MySQL 5.6 • Utilitaire en ligne de commande • Permet de stocker les informations d’authentification dans un fichier crypté nommé ~/.mylogin.cnf. • Permet de se connecter à MySQL sans avoir à connaître ou taper un mot de passe MySQL • Les commandes - set, print, remove, reset MySQL : Administration (1Z0-883) alphorm.com™©
  184. 184. Gestion de la sécurité Maintenance des tables MySQL : Administration (1Z0-883) alphorm.com™©
  185. 185. Maintenance des tables Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  186. 186. Maintenance des tables La maintenance du serveur MySQL Défragmentation des tables Mise à jour des statistiques Détection des données corrompus Réparation des tables endommagés MySQL : Administration (1Z0-883) alphorm.com™©
  187. 187. Maintenance des tables La commande CHECK TABLE Vérifie la structure Vérifie le contenu des tables Verrouillage des tables en lecture • Moteurs supportés - MyISAM - InnoDB - Archive et CSV MySQL : Administration (1Z0-883) alphorm.com™©
  188. 188. Maintenance des tables La commande CHECK TABLE Syntaxe CHECK TABLE table1 [, table2 ] [ option [option] ] • Options - QUICK : ne cherche pas les enregistrements orphelins. - FAST: Ne vérifie que les tables dont la fermeture ne s’est pas effectuée proprement. - CHANGED: Ne vérifie que les tables qui ont subi des modifications depuis la dernière vérification - MEDIUM (défaut): Vérifie les enregistrements et calcule une clé d’intégrité (checksum). - EXTENDED: Vérifie les enregistrements et calcule une clé d’intégrité pour chaque enregistrement. MySQL : Administration (1Z0-883) alphorm.com™©
  189. 189. Maintenance des tables La commande CHECK TABLE Retourne une table avec quatre champs - Table - Op (toujours check) - Msg_type (status=état de la table,error=message d’erreur,info(information),warning=message avertissement) - Msg_text MySQL : Administration (1Z0-883) alphorm.com™©
  190. 190. Maintenance des tables La commande REPAIR TABLE Corrige des tables en erreurs (CHECK TABLE) • Moteurs supportés - MyISAM - Archive et CSV • Syntaxe REPAIR TABLE table1 [, table2 ] [ NO_WRITE_TO_BINLOG ] [ QUICK ] [ EXTENDED ] [ USE_FRM ] MySQL : Administration (1Z0-883) alphorm.com™©
  191. 191. Maintenance des tables La commande CHECKSUM TABLE Calcul la somme de contrôle (checksum) d’une table (droit de select) Moteur supporté - InnoDB, CSV • Syntaxe CHECKSUM TABLE table1 [, table2 ] [ QUICK ] [ EXTENDED ] MySQL : Administration (1Z0-883) alphorm.com™©
  192. 192. Maintenance des tables La commande ANALYZE TABLE Analyse et enregistre les statistiques sur une ou plusieurs tables Moteurs supportés - MyISAM - InnoDB Verrou en lecture pour les tables MyISAM • Syntaxe ANALYZE TABLE table1 [, table2 ] [ NO_WRITE_TO_BINLOG ] MySQL : Administration (1Z0-883) alphorm.com™©
  193. 193. Maintenance des tables La commande OPTIMISE TABLE Permet de réduire la fragmentation • Récupère l’espace inutilisé • Trie les indexes • Met à jour les statistiques Moteurs supportés - MyISAM Syntaxe OPTIMISE [ NO_WRITE_TO_BINLOG ] TABLE table1 [, table2 ] MySQL : Administration (1Z0-883) alphorm.com™©
  194. 194. Maintenance des tables Utilitaire myisamchk Équivalent à [ CHECK | REPAIR | ANALYZE ] TABLE Travail directement sur les fichiers MyISAM au niveau système Syntaxe myisamchk [ options ] table1 [ table2 ] MySQL : Administration (1Z0-883) alphorm.com™©
  195. 195. Maintenance des tables Utilitaire mysqlcheck Équivalent à [ CHECK | REPAIR | ANALYZE ] TABLE Travail directement au niveau base ou table Syntaxe mysqlcheck [ options ] | --all-databases | databases base1 [ base2 ] MySQL : Administration (1Z0-883) alphorm.com™©
  196. 196. Maintenance des tables Import et export des données sous MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  197. 197. Import et export des données Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  198. 198. Import et export des données Export des données SELECT ... INTO OUTFILE • Permet d’exporter les données lues dans un fichier texte sur le serveur • Nécessite d’avoir le privilège FILE • Si le fichier existe déjà l’opération échoue • Syntaxe SELECT champ1, ... INTO OUTFILE ‘fichier’ FIELDS TERMINATED BY séparateur OPTIONNALY ENCLOSED BY délimiteur LINES TERMINATED BY séparateur FROM table; MySQL : Administration (1Z0-883) alphorm.com™©
  199. 199. Import et export des données Chargement des données LOAD DATA INFILE • Syntaxe LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY 't'] [[OPTIONALLY] ENCLOSED BY ''] [ESCAPED BY '' ] ] [LINES [STARTING BY ''] [TERMINATED BY 'n'] ] [IGNORE number LINES] [(col_name,...)] MySQL : Administration (1Z0-883) alphorm.com™©
  200. 200. Import et export des données mysqldump Outil de sauvegarde logique • Syntaxe mysqldump -u username -p [ OPTIONS ] dbname [ tables ] mysqldump [ OPTIONS ] --databases [ OPTIONS ] dbname1 [ dbname2, ... ] mysqldump [ OPTIONS ] --all-databases [ OPTIONS ] MySQL : Administration (1Z0-883) alphorm.com™©
  201. 201. Import et export des données mysqldump Import d’une sauvegarde logique • Syntaxe mysql [ OPTIONS ] dbname fichier.sql mysql [ OPTIONS ] dbname -e ‘fichiersql’ MySQL : Administration (1Z0-883) alphorm.com™©
  202. 202. Maintenance des tables Programmation dans MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  203. 203. Programmation sous MySQL Les procédures stockées Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  204. 204. Les procédures stockées La notion de routine • Programmes stockés dans le moteur MySQL - Les procédures stockées et les fonctions • Fonctions - Centraliser le traitement des requêtes - Une meilleur gestion de la sécurité - De meilleurs temps de traitement - Faciliter le développement et l’évolution des applications MySQL : Administration (1Z0-883) alphorm.com™©
  205. 205. Les procédures stockées Langage de programmation d’une procédure stockée • Langage LMD et LDD • Déclaration des variables avec DECLARE et SET • Utilisation des opérateurs logiques et des fonctions SQL prédéfinis • Utilisation des fonctions de contrôle (IF, ELSE, LOOP, CASE ...) • Utilisation de curseurs pour le parcour et le traitement des lignes MySQL : Administration (1Z0-883) alphorm.com™©
  206. 206. Les procédures stockées Qu’est ce qu’une procédure stockée ? • Programme (routine) qui n’a pas de valeur de retour • Syntaxe CREATE [ DEFINER = { user | CURRENT_USER }] PROCEDURE nom_procedure ( [ parametre1 [,...]]) [ caractéristique ] [ BEGIN ] corps_routine [ END ] MySQL : Administration (1Z0-883) alphorm.com™©
  207. 207. Les procédures stockées Les paramètres [ IN | OUT | INOUT ] param_name type type : type MySQL valide Les caractéristiques LANGUAGE SQL | [ NOT ] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT ‘string’ MySQL : Administration (1Z0-883) alphorm.com™©
  208. 208. Les procédures stockées Commandes sur les procédures stockés • Suppression - Syntaxe DROP PROCEDURE IF EXISTE nom_procstock; • Modification - Syntaxe ALTER PROCEDURE IF EXISTE nom_procstock; MySQL : Administration (1Z0-883) alphorm.com™©
  209. 209. Les procédures stockées Les fonctions MySQL : Administration (1Z0-883) alphorm.com™©
  210. 210. Programmation sous MySQL Les fonctions Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  211. 211. Les fonctions Qu’est ce qu’une fonction ? • Programme (routine) qui renvoi un résultat • Syntaxe CREATE [ DEFINER = { user | CURRENT_USER }] FUNCTION nom_fonction ( [ parametre1 [,...]]) [ RETURNS type ] [ caractéristique ] [ BEGIN ] corps_routine [ END ] MySQL : Administration (1Z0-883) alphorm.com™©
  212. 212. Les fonctions Les caractéristiques LANGUAGE SQL | [ NOT ] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT ‘string’ MySQL : Administration (1Z0-883) alphorm.com™©
  213. 213. Les fonctions Commandes sur les procédures stockés • Suppression - Syntaxe DROP FUNCTION IF EXISTE nom_fonction; • Modification - Syntaxe ALTER FUNCTION IF EXISTE nom_fonction; MySQL : Administration (1Z0-883) alphorm.com™©
  214. 214. Les fonctions Les triggers MySQL : Administration (1Z0-883) alphorm.com™©
  215. 215. Programmation sous MySQL Les triggers Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  216. 216. Les triggers Qu’est ce qu’un trigger (déclencheur) ? • Associé à une table • S’active lorsqu’un évènement particulier survient - BEFORE (avant) ou AFTER (après), • INSERT, UPDATE, DELETE MySQL : Administration (1Z0-883) alphorm.com™©
  217. 217. Les triggers Cas d’utilisation Log des utilisateurs/changements Exécuter des règles métier Renforcer les contraintes d’intégrité Dupliquer des données Améliorer les performances et les changements MySQL : Administration (1Z0-883) alphorm.com™©
  218. 218. Les triggers Création d’un trigger • Syntaxe CREATE TRIGGER déclencheur BEFORE | AFTER INSERT | DELETE | UPDATE ON nom_table FOR EACH ROW [condition] action MySQL : Administration (1Z0-883) alphorm.com™©
  219. 219. Les triggers Informations sur les triggers • Vue INFORMATION_SCHEMA.TRIGGERS Suppression d’un trigger Syntaxe • DROP TRIGGER déclencheur; MySQL : Administration (1Z0-883) alphorm.com™©
  220. 220. Les triggers Le planificateur d’événements MySQL : Administration (1Z0-883) alphorm.com™©
  221. 221. Programmation sous MySQL Le planificateur d’évènements Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  222. 222. Le planificateur d’évènements Qu’est ce que le planificateur d’évènements • Permet d’automatiser des tâches - Intervalles réguliers - Heure fixe • Tourne sous forme de processus léger (thread) • Nécessite le privilège EVENT • Activation SHOW GLOBAL VARIABLES LIKE 'event_scheduler'; SET GLOBAL event_scheduler = 1; MySQL : Administration (1Z0-883) alphorm.com™©
  223. 223. Le planificateur d’évènements Création d’un événement • Syntaxe CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] nom_événement ON SCHEDULE moment [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE | DISABLE ON SLAVE] [COMMENT ’commentaire’] DO corps_evenement; MySQL : Administration (1Z0-883) alphorm.com™©
  224. 224. Le planificateur d’évènements Création d’un événement • Syntaxe moment: AT timestamp [+ INTERVAL intervalle] ... | EVERY interval [STARTS timestamp [+ INTERVAL intervalle] ...] [ENDS timestamp [+ INTERVAL intervalle] ...] MySQL : Administration (1Z0-883) alphorm.com™©
  225. 225. Le planificateur d’événements Modification d’un événement • Syntaxe ALTER EVENT nom_événement ... Suppression d’un événement • Syntaxe DROP EVENT [IF EXISTS] nom_événement; Les métadonnées information_schema.events MySQL : Administration (1Z0-883) alphorm.com™©
  226. 226. Le planificateur d’événement Sauvegarde et restauration sous MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  227. 227. Sauvegarde et restauration Introduction Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  228. 228. Sauvegarde et restauration Les questions à se poser • Que sauvegarder • A quel fréquence • La tolérence de perte des données • La durée de rétention des sauvegardes Les bonnes pratiques • Sauvegarder le fichier de configuration de MySQL • Activer les journaux binaires (log-bin) • Tester les sauvegardes MySQL : Administration (1Z0-883) alphorm.com™©
  229. 229. Sauvegarde et restauration Les sauvegardes logiques MySQL : Administration (1Z0-883) alphorm.com™©
  230. 230. Sauvegarde et restauration Les sauvegardes logiques Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  231. 231. Les sauvegardes logiques Les outils de sauvegarde SELECT ... INTO OUTFILE mysqldump Sauvegarde cohérente avec mysqldump Options Moteur MYSIAM --opt (intègre l’option --lock-tables) --lock-all-tables (pour les exports multibases) Moteur InnoDB --single-transaction MySQL : Administration (1Z0-883) alphorm.com™©
  232. 232. Les sauvegardes logiques Les sauvegardes physiques MySQL : Administration (1Z0-883) alphorm.com™©
  233. 233. Sauvegarde et restauration Les sauvegardes physiques Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  234. 234. Les sauvegardes physiques Caractéristiques Copie physique de tous les fichiers (datadir) au niveau OS Peut-être réalisée base ouverte ou fermée MySQL : Administration (1Z0-883) alphorm.com™©
  235. 235. Les sauvegardes physiques Sauvegarde fichiers MyISAM Les fichiers à sauvegarder: .frm, .MYD et .MYI Base ouverte Nécessite un verrou au niveau table: LOCK TABLE nom READ; Possibilité de verrouiller toutes les tables LOCK TABLES table1 READ, table2 READ, ...; Possibilité de verrouiller toutes les tables de l’instance FLUSH TABLES WITH READ LOCK; Nécessité d’enlever le verrou après la sauvegarde: UNLOCK TABLES; MySQL : Administration (1Z0-883) alphorm.com™©
  236. 236. Les sauvegardes physiques Sauvegarde MyISAM Les étapes Pose d’un verrou sur les tables à sauvegarder LOCK TABLE Forcer la synchronisation entre le cache MySQL et les fichiers FLUSH TABLE Copie des fichiers .frm, .MYD et .MYI (tar, cp, gzip, cpio, ...) Dévérouillage des tables UNLOCK TABLES; MySQL : Administration (1Z0-883) alphorm.com™©
  237. 237. Les sauvegardes physiques Sauvegarde fichiers InnoDB Les fichiers à sauvegarder innodb_data_file_path: .frm, ibdatanuméro innodb_file_per_table: .frm, nom_table.ibd Base ouverte Nécessite un verrou au niveau table: LOCK TABLE nom READ; Possibilité de verrouiller toutes les tables LOCK TABLES table1 READ, table2 READ, ...; Possibilité de verrouiller toutes les tables de l’instance FLUSH TABLES WITH READ LOCK; Nécessité d’enlever le verrou après la sauvegarde: UNLOCK TABLES; MySQL : Administration (1Z0-883) alphorm.com™©
  238. 238. Les sauvegardes physiques Sauvegarde fichiers InnoDB Les étapes Poser un verrou global en lecture sur l’ensemble des tables FLUSH TABLES WITH READ LOCK Sauvegarde de tous les fichiers au niveau de l’OS (cp, tar, gzip, cpio, ...) Dévérouillage des tables UNLOCK TABLES MySQL : Administration (1Z0-883) alphorm.com™©
  239. 239. Les sauvegardes physiques La restauration MySQL : Administration (1Z0-883) alphorm.com™©
  240. 240. Sauvegarde et restauration La restauration Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  241. 241. La restauration Dépend du type de sauvegarde Restauration à partir d’une sauvegarde à froid Restauration à partir d’un export Type de restauration • Restauration FULL, base, table • Restauration PITR - Nécessite l’utilisation des journaux binaire - Utilisation de l’outil mysqlbinlog MySQL : Administration (1Z0-883) alphorm.com™©
  242. 242. La restauration La réplication MySQL : Administration (1Z0-883) alphorm.com™©
  243. 243. La réplication Introduction Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  244. 244. Introduction Qu’est-ce que la réplication ? • Permet de diposer de plusieurs serveurs avec les mêmes données • Utilise les logs binaires MySQL : Administration (1Z0-883) alphorm.com™©
  245. 245. Introduction Pourquoi utiliser la réplication • Montée en charge • Répartition de la charge • Haute disponibilité • Sauvegarde MySQL : Administration (1Z0-883) alphorm.com™©
  246. 246. Introduction Fonctionnement de la réplication MAITRE ESCLAVE Copie les transactions du maitre dans les relay log Binlogs IO_THREAD IO_THREAD (relay log) SQL_THREAD ESCLAVE Applique les transactions des relay log dans MySQL Transfert du contenu des logs binaire vers les esclaves IO_THREAD (relay log) SQL_THREAD MySQL : Administration (1Z0-883) alphorm.com™©
  247. 247. Introduction Les différentes topologies • Maître/Esclave • Maître/Maître - Actif - Actif - Actif - Passif Les modes de réplication • SBR (Statement Based Replication: antérieure à MySQL 5.1) • RBR (Row Based Replication: à partir de MySQL 5.1) • La réplication semi-sychrone (depuis la version 5.5) - Nécessite l’activation sur le maître et les esclaves MySQL : Administration (1Z0-883) alphorm.com™©
  248. 248. Introduction Mise en oeuvre de la réplication MySQL : Administration (1Z0-883) alphorm.com™©
  249. 249. Sauvegarde et restauration La restauration Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  250. 250. La restauration Dépend du type de sauvegarde Restauration à partir d’une sauvegarde à froid Restauration à partir d’un export Type de restauration • Restauration FULL • Restauration PITR - Nécessite l’utilisation des journaux binaire MySQL : Administration (1Z0-883) alphorm.com™©
  251. 251. La restauration La réplication MySQL : Administration (1Z0-883) alphorm.com™©
  252. 252. La réplication SWITCHOVER Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  253. 253. SWITCHOVER Les principales variables de configuration • server-id • log-bin • binlog-do-db, binlog-do-table,binlog-ignore-db,binlog-ignore-table • replicate-do-db, replicate-ignore-db, replicate-do-table, replicate-ignore-table • expire_log_days • sync_binlog • ... MySQL : Administration (1Z0-883) alphorm.com™©
  254. 254. SWITCHOVER Les commandes SQL • SHOW MASTER STATUS • SHOW SLAVE STATUS • START | STOP SLAVE {IO_THREAD | SQL_THREAD } • SHOW BINARY LOGS • PURGE BINARY LOG options • RESET MASTER • RESET SLAVE • CHANGE MASTER TO MySQL : Administration (1Z0-883) alphorm.com™©
  255. 255. SWITCHOVER Rappel de la configuration du LAB MAITRE: 192.168.1.200 ESCLAVE: 192.168.1.202 Copie les transactions du maitre dans les relay log binlogs IO_THREAD IO_THREAD (relay log) SQL_THREAD Applique les transactions des relay log dans MySQL Transfert du contenu des logs binaire vers les esclaves MySQL : Administration (1Z0-883) alphorm.com™©
  256. 256. SWITCHOVER Les étapes Arrêter les écritures sur le nouveau maître et activer les log binaires Relever la position des journaux binaires sur le futur maître (SHOW MASTER STATUS) Configurer la réplication sur l’ancien maître (CHANGE MASTER TO) Démarrer la réplication sur l’ancien maître (START SLAVE) Arrêter la réplication sur le nouveau maître (STOP SLAVE) MySQL : Administration (1Z0-883) alphorm.com™©
  257. 257. SWITCHOVER Introduction à l’optimisation des performances MySQL : Administration (1Z0-883) alphorm.com™©
  258. 258. Introduction à l’optimisation des performances Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  259. 259. Introduction à l’optimisation des performances Les éléments de performances • Matériel - CPU, Mémoire, Disque (type, RAID 0-1-5-10) • Logiciel - Caches MySQL, paramètres MySQL, OS, méthode de synchronisation • Applicatif - Schéma de données, indexes, plan d’éxécution MySQL : Administration (1Z0-883) alphorm.com™©
  260. 260. Introduction à l’optimisation des performances Eléments logiciel • Le cache de requête - query_cache_type (active ou pas le cache de requête) • 0 = pas de cache 1 = met en cache toutes les requetes sauf celles qui ont le flag SELECT SQL_NO_CACHE 2 = met en cache seulement les requetes qui comportent le flag SELECT SQL_CACHE - query_cache_size (taille du cache de requête) - RESET QUERY CACHE (réinitialise le cache de requête) - query_cache_limit (taille maximale des données mis en cache) - ... • Le cache de table - table_open_tables - open_table_definitions MySQL : Administration (1Z0-883) alphorm.com™©
  261. 261. Introduction à l’optimisation des performances Eléments logiciel • MyISAM - key_buffer_size (taille du cache d’index) • InnoDB - innodb_buffer_size (taille du cache mémoire) - Innodb_log_buffer_size (taille du tampon de log) • Paramètre par client - sort_buffer_size (taille du tampon de tri) MySQL : Administration (1Z0-883) alphorm.com™©
  262. 262. Introduction à l’optimisation des performances Elément applicatif • Les indexes - Quand créer un index ? • Sur un champ utiliser dans une clause WHERE, ORDER BY ou GROUP BY • Sur des tables assez volumineuses • Sur les clés étrangères • Un index implicite est créer lors de la création d’un PRIMARY KEY MySQL : Administration (1Z0-883) alphorm.com™©
  263. 263. Introduction à l’optimisation des performances Elément applicatif • Les indexes - Les types d’index • Index uniques • Clé primaire • Index sur plusieurs colonnes • Index sur un préfixe de colonne • ... MySQL : Administration (1Z0-883) alphorm.com™©
  264. 264. Introduction à l’optimisation des performances Elément applicatif • La commande EXPLAIN - Permet d’afficher le plan d’éxecution d’une requête MySQL : Administration (1Z0-883) alphorm.com™©
  265. 265. Introduction à l’optimisation des performances Conclusion MySQL : Administration (1Z0-883) alphorm.com™©
  266. 266. Conclusion Le mot de la fin Site : http://www.alphorm.com Blog : http://www.alphorm.com/blog Forum : http://www.alphorm.com/forum Noureddine DRISSI Expert consultant bases de données Contact : contact@valneo-xi.fr MySQL : Administration (1Z0-883) alphorm.com™©
  267. 267. Conlusion Rappel des objectifs de la formation: Comprendre et décrire l’architecture de MySQL Installer et mettre à jour MySQL Administrer et configurer MySQL Utiliser les outils MySQL tel que MySQL WorkBench Comprendre et mettre en oeuvre les différents moteurs de stockage (InnoDB, MyISAM, MEMORY, CSV...) Comprendre et gérer la sécurité sous MySQL Comprendre et mettre en oeuvre la réplication sous MySQL Comprendre et décrire les techniques d’optimisation de MYSQL Réaliser les opérations de sauvegarde et restauration MySQL : Administration (1Z0-883) alphorm.com™©
  268. 268. Conlusion A venir: MySQL Tuning MySQL : Administration (1Z0-883) alphorm.com™©
  269. 269. Conclusion FIN Merci pour votre attention MySQL : Administration (1Z0-883) alphorm.com™©

×