INTRODUCTION /\ DBA MySQL

I► Dans cet article, nous allons apprendre les bases de l’administration MySQL

Télécharger (PDF, 570KB)

Dans cet article, nous allons voir les définitions de conception et de modélisation du langage SQL. Le langage SQL ( Structured Query Language ) regroupe différentes parties de conception, de manipulation de données et de gestion des droits des utilisateurs .

1ère Partie : Le Data Definition Language : DDL

C’est la partie du langage qui permet de créer des bases de données, les tables, les index Elle regroupe les instructions CREATE, ALTER, DROP ( créer, modifier, supprimer un élément de la base ).

2ne Partie : Le Data Manipulation Language : DML

C’est la partie du langage qui traite les données.Elle regroupe les instructions INSERT, UPDATE, DELETE, SELECT ( insertion, mise à jour, suppression et extraction de données ).

3ème Partie : Le Data Control Language : DCL

C’est la partie du SQL qui gère les droits d’accès aux tables. Elle regroupe les instructions GRANT, REVOKE ( attribution et suppression des droits ).

——————————————————————————————————————–

Les Schémas MySQL ou DataBases …

——————————————————————————————————————–

Dans MySQL un schéma est le synonyme de database, on peut donc employer l’un ou l’autre terme. Par contre dans certains SGBR, le schéma ne peut contenir que certaines parties de la database.

Capture

—————————————————————————————————————————–

Voici quelques commandes de base utiles à connaître pour la suite des Travaux Pratiques :

—————————————————————————————————————————–

? Comment se connecter au serveur MySQL en ligne de commande :

> mysql -u root -p
Le mot de passe est ensuite demandé …

Comment créer une de base de données :

  • Voici un exemple qui permet de créer la base de données nommée centrale avec un jeu d’encodage de caractères en UTF-8 ( default character set ) et un jeu de règles pour comparer et rechercher les données dans le jeu d’enregistrements ( collate ) basé sur du Case insentive dans notre cas :
  • create database centrale DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

? Comment créer une table en précisant un moteur de stockage :

CREATE TABLE formation (  pk_cours int(11) NOT NULL AUTO_INCREMENT,
cours varchar(100) NOT NULL,durée int(7) NOT NULL,
prix decimal(10,0) NOT NULL, catégorie varchar(150) NOT NULL,
 PRIMARY KEY (pk_cours)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

Capture

? Comment créer un utilisateur de la base de données et lui attribuer des droits (  privilèges ) :

  • Voici un exemple qui permet de créer un utilisateur nommé michel associé au mot de passe tux ( clause optionnelle ) et qui aura accès au serveur local.
  • CREATE USER ‘michel’@’localhost’ IDENTIFIED BY ‘tux’;
  • Le mot de passe est ici saisi en clair, il vaudrait mieux utiliser l’empreinte SHA1 ou md5 que l’on peut générer avec la commande select sha1(‘tux’) , ce qui donnerait :
  • CREATE USER ‘michel’@’localhost’ IDENTIFIED BY ‘*AC5CC6D66967DC0DC9222066A7D80A36208DF22D’;
    ? Pour rappel md5 et sha1 sont des algorithmes de hashage, ils créent une empreinte du mot de passe et il est donc plus compliqué de récupérer l’original. Malgré tout les attaques dites de force brute basées sur de puissants dictionnaires peuvent venir à bout d’un hash d’ou l nécessité d’utiliser des mots de passe complexes. Voir de rajouter un grain de sel dans la composition du hash. Le grain de sel est un second passage de hash qui renforce la sécurité des empreintes …

Capture

Voici un exemple de commande qui donne les privilèges d’utilisation sur toutes les bases et toutes les tables incluses : *.*

  • GRANT USAGE ON * . * TO ‘michel’@’localhost’ IDENTIFIED BY ‘tux’;

Un autre exemple qui donne les droits classiques uniquement sur la database base_formation et la table table_planning …

GRANT SELECT , INSERT ,UPDATE ,DELETE ,CREATE ,DROP ,ALTER ON base_formation.table_plannig * TO ‘bob’@’localhost’;

? Comment sauvegarder facilement une ou plusieurs bases de données :

MySqlDump est un outil de sauvegarde qui peut exporte et restaurer une ou plusieurs bases de données en incluant les routines, les données et la structure.

  • Exemple 1: exporte toutes les bases vers svg-25-12-2012.sql
    (le user concerné est root avec un mdp debian)
  • mysqldump -u root -p debian –all-databases –opt > svg-25-12-2012.sql
  • Exemple 2 : export d’une base de données nommée centrale
  • mysqldump -u root -p debian -B centrale > /tmp/centrale.sql 
  • Exemple : Importe la sauvegarde au format sql centrale;sql
  • mysql -uroot -pdebian centrale < /tmp/centrale.sql

———————————————————————————————————————

Voici un listing des commandes de bases pour manipuler les données :

———————————————————————————————————————

SHOW DATABASES ; Liste les bases de données

SHOW STATUS ; Affiche le statut du serveur

USE nom_base ; Sélectionne la base par défaut

SHOW TABLES; Affiche les tables de la base courante

DESCRIBLE table ; Affiche la structure de la table

SELECT * FROM table ; Affiche le contenu de la table

Voilà pour l’article, rendez vous sur le prochain …

Michel BOCCIOLESI