SlideShare ist ein Scribd-Unternehmen logo
1 von 269
Downloaden Sie, um offline zu lesen
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™©
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™©
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™©
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™©
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™©
Certification 
Cette formation vous prépare à l'examen de la certification: 
MySQL for Database Administrators (1Z0-883) 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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:
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/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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 
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™©
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™©
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://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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/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™©
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™©
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™©
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://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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 
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™©
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™©
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™©
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™©
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™©
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 
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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 
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™©
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™©
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/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™©
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™©
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™©
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™©
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://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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.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™©
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™©
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™©
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™©
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.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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™©
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™©
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™©
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™©
Les types de données MySQL 
 Optimisation du type 
shell SELECT colonne from TABLE PROCEDURE ANALYSE() G 
MySQL : Administration (1Z0-883) alphorm.com™©
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.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
Moteurs de stockage MySQL 
 Les moteurs les plus connus 
• INNODB 
• MYISAM 
• MEMORY 
• ARCHIVE 
• CSV 
• FEDERATED 
• ... 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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 
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™©
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™©
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™©
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™©
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™©
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 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™©
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 
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™©
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™©
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™©
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™©
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 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™©
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 
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™©
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™©
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™©
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://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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 
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™©
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™©
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™©
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 
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™©
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™©
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™©
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 
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™©
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™©
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 
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™©
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™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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 
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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™©
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™©
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™©
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/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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™©
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.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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™©
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 
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™©
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™©
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™©
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™©
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™©
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™©
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://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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™©
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/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™©
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™©
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™©
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™©
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™©
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://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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 
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™©
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™©
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 
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™©
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™©
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™©
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™©
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™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
Introduction 
 Pourquoi utiliser la réplication 
• Montée en charge 
• Répartition de la charge 
• Haute disponibilité 
• Sauvegarde 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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™©
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 : http://www.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
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™©
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™©
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™©
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™©
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™©
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.alphorm.com/forum 
Noureddine DRISSI 
Expert consultant bases de données 
Contact : contact@valneo-xi.fr 
MySQL : Administration (1Z0-883) alphorm.com™©
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™©
Conlusion 
 A venir: 
 MySQL Tuning 
MySQL : Administration (1Z0-883) alphorm.com™©
Conclusion 
FIN 
Merci pour votre attention 
MySQL : Administration (1Z0-883) alphorm.com™©

Weitere ähnliche Inhalte

Was ist angesagt?

Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLwebreaker
 
Alphorm.com Formation le langage SQL
Alphorm.com  Formation le langage SQLAlphorm.com  Formation le langage SQL
Alphorm.com Formation le langage SQLAlphorm
 
Cours cisco icnd1
Cours cisco icnd1Cours cisco icnd1
Cours cisco icnd1saqrjareh
 
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+Alphorm
 
Alphorm.com Formation Microsoft Azure (AZ-104) : Administration
Alphorm.com Formation Microsoft Azure (AZ-104) : AdministrationAlphorm.com Formation Microsoft Azure (AZ-104) : Administration
Alphorm.com Formation Microsoft Azure (AZ-104) : AdministrationAlphorm
 
alphorm.com - Formation Cisco ICND1-CCENT (100-101)
alphorm.com - Formation Cisco ICND1-CCENT (100-101)alphorm.com - Formation Cisco ICND1-CCENT (100-101)
alphorm.com - Formation Cisco ICND1-CCENT (100-101)Alphorm
 
Alphorm.com Formation PowerShell : Niveau Initiation
Alphorm.com Formation PowerShell : Niveau InitiationAlphorm.com Formation PowerShell : Niveau Initiation
Alphorm.com Formation PowerShell : Niveau InitiationAlphorm
 
Concepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationConcepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationSoukaina Boujadi
 
Diaporamas-Réseaux Informatiques.pdf
Diaporamas-Réseaux Informatiques.pdfDiaporamas-Réseaux Informatiques.pdf
Diaporamas-Réseaux Informatiques.pdfEST-UMI de Meknès
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services webCHOUAIB EL HACHIMI
 
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture RESTFadel Chafai
 
Chapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIChapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIMohamed Lahby
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarAnouar Sghaier
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1infcom
 

Was ist angesagt? (20)

Telecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQLTelecharger Exercices corrigés PL/SQL
Telecharger Exercices corrigés PL/SQL
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Alphorm.com Formation le langage SQL
Alphorm.com  Formation le langage SQLAlphorm.com  Formation le langage SQL
Alphorm.com Formation le langage SQL
 
Tp n 4 linux
Tp n 4 linuxTp n 4 linux
Tp n 4 linux
 
Cours cisco icnd1
Cours cisco icnd1Cours cisco icnd1
Cours cisco icnd1
 
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
 
Alphorm.com Formation Microsoft Azure (AZ-104) : Administration
Alphorm.com Formation Microsoft Azure (AZ-104) : AdministrationAlphorm.com Formation Microsoft Azure (AZ-104) : Administration
Alphorm.com Formation Microsoft Azure (AZ-104) : Administration
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
alphorm.com - Formation Cisco ICND1-CCENT (100-101)
alphorm.com - Formation Cisco ICND1-CCENT (100-101)alphorm.com - Formation Cisco ICND1-CCENT (100-101)
alphorm.com - Formation Cisco ICND1-CCENT (100-101)
 
POO
POOPOO
POO
 
Alphorm.com Formation PowerShell : Niveau Initiation
Alphorm.com Formation PowerShell : Niveau InitiationAlphorm.com Formation PowerShell : Niveau Initiation
Alphorm.com Formation PowerShell : Niveau Initiation
 
Concepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationConcepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupération
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Diaporamas-Réseaux Informatiques.pdf
Diaporamas-Réseaux Informatiques.pdfDiaporamas-Réseaux Informatiques.pdf
Diaporamas-Réseaux Informatiques.pdf
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture REST
 
Chapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSIChapitre 2: Modèle de référence OSI
Chapitre 2: Modèle de référence OSI
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouar
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1
 

Andere mochten auch

Alphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm
 
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultantAlphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultantAlphorm
 
Alphorm.com formation-GNS3
Alphorm.com formation-GNS3Alphorm.com formation-GNS3
Alphorm.com formation-GNS3Alphorm
 
alphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationalphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationAlphorm
 
alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)Alphorm
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm
 
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)Alphorm
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm
 
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm
 
Introduction aux Triggers avec MySQL
Introduction aux Triggers avec MySQLIntroduction aux Triggers avec MySQL
Introduction aux Triggers avec MySQLRouff Joseph
 
[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosqlGUSS
 
Les bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlLes bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlZineb Meryem
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratiqueAbdelouahed Abdou
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studiohoracio lassey
 
Petit Déjeuner Talend/SQLI
Petit Déjeuner Talend/SQLIPetit Déjeuner Talend/SQLI
Petit Déjeuner Talend/SQLICedric CARBONE
 
[French] Matinale du Big Data Talend
[French] Matinale du Big Data Talend[French] Matinale du Big Data Talend
[French] Matinale du Big Data TalendJean-Michel Franco
 

Andere mochten auch (20)

Alphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQL
 
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultantAlphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
 
Alphorm.com formation-GNS3
Alphorm.com formation-GNS3Alphorm.com formation-GNS3
Alphorm.com formation-GNS3
 
alphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationalphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administration
 
alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)alphorm.com - Formation SQL Server 2012 (70-462)
alphorm.com - Formation SQL Server 2012 (70-462)
 
Alphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQLAlphorm.com Formation PL/SQL
Alphorm.com Formation PL/SQL
 
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
Alphorm.com Formation Microsoft SQL Server 2016 Business Intelligence (SSIS)
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
 
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentauxAlphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
Alphorm.com Formation ETL Talend Open Studio (1/2) - Les fondamentaux
 
Introduction aux Triggers avec MySQL
Introduction aux Triggers avec MySQLIntroduction aux Triggers avec MySQL
Introduction aux Triggers avec MySQL
 
[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql[JSS2015] - Document db et nosql
[JSS2015] - Document db et nosql
 
Triggers ppt
Triggers pptTriggers ppt
Triggers ppt
 
Les bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlLes bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sql
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratique
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studio
 
Petit Déjeuner Talend/SQLI
Petit Déjeuner Talend/SQLIPetit Déjeuner Talend/SQLI
Petit Déjeuner Talend/SQLI
 
Talend
TalendTalend
Talend
 
Certificate Talend
Certificate TalendCertificate Talend
Certificate Talend
 
[French] Matinale du Big Data Talend
[French] Matinale du Big Data Talend[French] Matinale du Big Data Talend
[French] Matinale du Big Data Talend
 

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

alphorm.com - Formation proxmoxVE 3
alphorm.com - Formation proxmoxVE 3alphorm.com - Formation proxmoxVE 3
alphorm.com - Formation proxmoxVE 3Alphorm
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm
 
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2 Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2 Alphorm
 
alphorm.com - Citrix XenServer 6 Administration (A20)
alphorm.com - Citrix XenServer 6 Administration (A20)alphorm.com - Citrix XenServer 6 Administration (A20)
alphorm.com - Citrix XenServer 6 Administration (A20)Alphorm
 
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockage
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockageAlphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockage
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockageAlphorm
 
Net Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceNet Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceRSD
 
alphorm.com - Formation Configuration Exchange 2010 (70-662)
alphorm.com - Formation Configuration Exchange 2010 (70-662)alphorm.com - Formation Configuration Exchange 2010 (70-662)
alphorm.com - Formation Configuration Exchange 2010 (70-662)Alphorm
 
alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)Alphorm
 
windows-serv111111111111111111111111111111111
windows-serv111111111111111111111111111111111windows-serv111111111111111111111111111111111
windows-serv111111111111111111111111111111111chirouxchira
 
alphorm.com - Formation VMware PowerCLI 5.0
alphorm.com - Formation VMware PowerCLI 5.0alphorm.com - Formation VMware PowerCLI 5.0
alphorm.com - Formation VMware PowerCLI 5.0Alphorm
 
Alphorm.com Formation VirtualBox
Alphorm.com Formation VirtualBoxAlphorm.com Formation VirtualBox
Alphorm.com Formation VirtualBoxAlphorm
 
Alphorm.com Formation Veeam Backup & Replication 9.5
Alphorm.com Formation Veeam Backup & Replication 9.5Alphorm.com Formation Veeam Backup & Replication 9.5
Alphorm.com Formation Veeam Backup & Replication 9.5Alphorm
 
alphorm.com - Formation Citrix XenDesktop 5.6 Administration (A19)
alphorm.com - Formation Citrix XenDesktop 5.6 Administration (A19)alphorm.com - Formation Citrix XenDesktop 5.6 Administration (A19)
alphorm.com - Formation Citrix XenDesktop 5.6 Administration (A19)Alphorm
 
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par EdifixioTrack 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par EdifixioAmazon Web Services
 
Alphorm.com-Formation Windows Server 2012 R2 (70-411)
Alphorm.com-Formation Windows Server 2012 R2 (70-411)Alphorm.com-Formation Windows Server 2012 R2 (70-411)
Alphorm.com-Formation Windows Server 2012 R2 (70-411)Alphorm
 
Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm
 
Alphorm.com Support VMware vSphere 6, Le réseau virtuel
Alphorm.com Support VMware vSphere 6, Le réseau virtuelAlphorm.com Support VMware vSphere 6, Le réseau virtuel
Alphorm.com Support VMware vSphere 6, Le réseau virtuelAlphorm
 
alphorm.com - Formation Veeam Backup & Replication 6.5
alphorm.com - Formation Veeam Backup & Replication 6.5alphorm.com - Formation Veeam Backup & Replication 6.5
alphorm.com - Formation Veeam Backup & Replication 6.5Alphorm
 
Alphorm.com Formation OS X 10.11 Server El Capitan, Les fondamentaux
Alphorm.com Formation OS X 10.11 Server El Capitan, Les fondamentauxAlphorm.com Formation OS X 10.11 Server El Capitan, Les fondamentaux
Alphorm.com Formation OS X 10.11 Server El Capitan, Les fondamentauxAlphorm
 

Ähnlich wie Alphorm.com Formation MySQL Administration(1Z0-883) (20)

alphorm.com - Formation proxmoxVE 3
alphorm.com - Formation proxmoxVE 3alphorm.com - Formation proxmoxVE 3
alphorm.com - Formation proxmoxVE 3
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
 
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2 Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
 
Le nouveau AMP : apache mariadb php
Le nouveau AMP : apache mariadb phpLe nouveau AMP : apache mariadb php
Le nouveau AMP : apache mariadb php
 
alphorm.com - Citrix XenServer 6 Administration (A20)
alphorm.com - Citrix XenServer 6 Administration (A20)alphorm.com - Citrix XenServer 6 Administration (A20)
alphorm.com - Citrix XenServer 6 Administration (A20)
 
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockage
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockageAlphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockage
Alphorm.com Support de la Formation VMmware vSphere 6, La gestion du stockage
 
Net Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceNet Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a Service
 
alphorm.com - Formation Configuration Exchange 2010 (70-662)
alphorm.com - Formation Configuration Exchange 2010 (70-662)alphorm.com - Formation Configuration Exchange 2010 (70-662)
alphorm.com - Formation Configuration Exchange 2010 (70-662)
 
alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)alphorm.com - Formation Windows Server Core 2008 (R2)
alphorm.com - Formation Windows Server Core 2008 (R2)
 
windows-serv111111111111111111111111111111111
windows-serv111111111111111111111111111111111windows-serv111111111111111111111111111111111
windows-serv111111111111111111111111111111111
 
alphorm.com - Formation VMware PowerCLI 5.0
alphorm.com - Formation VMware PowerCLI 5.0alphorm.com - Formation VMware PowerCLI 5.0
alphorm.com - Formation VMware PowerCLI 5.0
 
Alphorm.com Formation VirtualBox
Alphorm.com Formation VirtualBoxAlphorm.com Formation VirtualBox
Alphorm.com Formation VirtualBox
 
Alphorm.com Formation Veeam Backup & Replication 9.5
Alphorm.com Formation Veeam Backup & Replication 9.5Alphorm.com Formation Veeam Backup & Replication 9.5
Alphorm.com Formation Veeam Backup & Replication 9.5
 
alphorm.com - Formation Citrix XenDesktop 5.6 Administration (A19)
alphorm.com - Formation Citrix XenDesktop 5.6 Administration (A19)alphorm.com - Formation Citrix XenDesktop 5.6 Administration (A19)
alphorm.com - Formation Citrix XenDesktop 5.6 Administration (A19)
 
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par EdifixioTrack 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
 
Alphorm.com-Formation Windows Server 2012 R2 (70-411)
Alphorm.com-Formation Windows Server 2012 R2 (70-411)Alphorm.com-Formation Windows Server 2012 R2 (70-411)
Alphorm.com-Formation Windows Server 2012 R2 (70-411)
 
Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11
 
Alphorm.com Support VMware vSphere 6, Le réseau virtuel
Alphorm.com Support VMware vSphere 6, Le réseau virtuelAlphorm.com Support VMware vSphere 6, Le réseau virtuel
Alphorm.com Support VMware vSphere 6, Le réseau virtuel
 
alphorm.com - Formation Veeam Backup & Replication 6.5
alphorm.com - Formation Veeam Backup & Replication 6.5alphorm.com - Formation Veeam Backup & Replication 6.5
alphorm.com - Formation Veeam Backup & Replication 6.5
 
Alphorm.com Formation OS X 10.11 Server El Capitan, Les fondamentaux
Alphorm.com Formation OS X 10.11 Server El Capitan, Les fondamentauxAlphorm.com Formation OS X 10.11 Server El Capitan, Les fondamentaux
Alphorm.com Formation OS X 10.11 Server El Capitan, Les fondamentaux
 

Mehr von Alphorm

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm
 

Mehr von Alphorm (20)

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion Commerciale
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POO
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
 

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

  • 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. 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. 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. 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. 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. Certification Cette formation vous prépare à l'examen de la certification: MySQL for Database Administrators (1Z0-883) MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. GO MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Introduction à MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. Présentation de MySQL Installation de MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Pré-installation Installation à partir des sources MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Installation sous Windows Mise à jour de MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. Installation sous Windows Installation de la base fact MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Installation de la base fact Architecture de MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. Instance MySQL Arrêt et démarrage d’une instance MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. Arrêt et démarrage d’une instance Le cache MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Le cache MySQL Les logs MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. Les bases de données sous MySQL La configuration de MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. 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. 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. Les méthodes de configuration Affichage de la configuration MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Affichage de la configuration Présentation des principaux paramètres MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. Les principaux paramètres MySQL Clients et outils MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. L’outil mysql L’outil mysqlshow MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. L’outil mysqlshow L’outil mysqladmin MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. L’outil mysqladmin Les outils graphiques d’administration MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. Les interfaces graphiques d’administration Les types de données MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. 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. 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. 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. Les types de données MySQL Optimisation du type shell SELECT colonne from TABLE PROCEDURE ANALYSE() G MySQL : Administration (1Z0-883) alphorm.com™©
  • 88. Les types de données MySQL Obtention des métadonnées MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. Obtention des métadonnées Moteurs de stockage MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. Moteurs de stockage MySQL Les moteurs les plus connus • INNODB • MYISAM • MEMORY • ARCHIVE • CSV • FEDERATED • ... MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. Moteurs de stockage MySQL Le moteur INNODB MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. Le moteur InnoDB Le moteur MyISAM MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. Le moteur MyISAM Le moteur MEMORY MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Le moteur MEMORY Les autres moteurs MYSQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. Les autres moteurs MySQL Autres moteurs • NDB Cluster • XtraDB MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. Les autres moteurs MySQL Transactions et verrous MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. Les autres moteurs MySQL Autres moteurs • NDB Cluster • XtraDB MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. Les autres moteurs MySQL Transactions et verrous MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. Les niveaux d’isolation Les verrous MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. Les verrous Le partitionnement MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. Le partitionnement Le partitionnement par RANGE MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. Le partitionnement de type RANGE Le partitionnement de type LIST MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. Le partitionnement de type LIST Le partitionnement de type HASH MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Le partitionnement de type HASH Le partitionnement de type KEY MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. Le partitionnement de type KEY Le sous partitionnement MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Le sous-partitionnement Gestion des utilisateurs MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. 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. 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. 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. La gestion des comptes MySQL Gestion des privilèges utilisateurs MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. La gestion des privilèges Gestion de la sécurité MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. 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. 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. Gestion de la sécurité Maintenance des tables MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Maintenance des tables Import et export des données sous MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. Maintenance des tables Programmation dans MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. 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. Les procédures stockées Les fonctions MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. Les fonctions Les triggers MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. Les triggers Le planificateur d’événements MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. Le planificateur d’événement Sauvegarde et restauration sous MySQL MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Sauvegarde et restauration Les sauvegardes logiques MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Les sauvegardes logiques Les sauvegardes physiques MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. 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. Les sauvegardes physiques La restauration MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. La restauration La réplication MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. Introduction Mise en oeuvre de la réplication MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. La restauration La réplication MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. SWITCHOVER Introduction à l’optimisation des performances MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. 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. 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. 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. 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. 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. Introduction à l’optimisation des performances Conclusion MySQL : Administration (1Z0-883) alphorm.com™©
  • 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. 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. Conlusion A venir: MySQL Tuning MySQL : Administration (1Z0-883) alphorm.com™©
  • 269. Conclusion FIN Merci pour votre attention MySQL : Administration (1Z0-883) alphorm.com™©