Bibliothèque Numérique ENI :
tous nos livres & vidéos, en accès illimité 24h/24. Cliquez ici
Bibliothèque Numérique ENI :
tous nos livres & vidéos, en accès illimité 24h/24. Cliquez ici
  1. Livres & vidéos
  2. LAMP
  3. Débuter avec MySQL
Extrait - LAMP Installez et configurez votre serveur web (Linux, Apache, MySQL et PHP)
Extraits du livre
LAMP Installez et configurez votre serveur web (Linux, Apache, MySQL et PHP) Revenir à la page d'achat du livre

Débuter avec MySQL

Les moyens d’installation

1. Les prérequis

Dans ce chapitre, nous allons installer la version Community de MySQL. Il s’agit d’une version libre et open source distribuée gratuitement. Son installation sous Linux ne nécessite aucun prérequis matériel particulier. Prévoyez simplement de disposer d’assez d’espace de stockage selon le type d’installation que vous choisirez.

Quel que soit le moyen d’installation que vous aurez choisi, MySQL ne devrait pas occuper plus de 500 Mo d’espace de stockage après son installation. Si vous choisissez l’installation par les fichiers sources, il faudra également prévoir un espace temporaire qui permettra de télécharger et décompresser l’archive, puis de compiler les fichiers sources. Pour cela, prévoyez au moins 10 Go pour être confortable.

2. Les différentes méthodes d’installation

a. Installation par le gestionnaire de paquets

Dans la majorité des cas, l’installation par le gestionnaire de paquets sera le moyen d’installation choisi pour MySQL sous Linux. Ce type d’installation permet de bénéficier d’une mise en œuvre simplifiée à travers une configuration standard. Néanmoins, de nombreuses distributions Linux ne proposent pas les paquets de MySQL dans leurs dépôts. Toutefois, il sera possible de les obtenir depuis les dépôts officiels de MySQL.

Afin de vous donner un aperçu de ce type d’installation, vous retrouverez ci-dessous...

MySQL et ses utilitaires

1. Le programme mysqld

a. Exécution en tant que service

À la suite de l’installation de MySQL sous Debian, plusieurs programmes seront installés. On y retrouve mysqld, le programme principal qui permet d’exécuter le serveur de base de données.

Ce programme a été conçu pour être exécuté en tant que daemon et s’exécute généralement à travers la commande mysqld_safe, qui apporte plusieurs fonctionnalités afin de gérer le processus de mysqld.

L’exécution du programme mysqld à travers cette commande permet notamment d’ajouter la journalisation des erreurs et de redémarrer automatiquement le processus en cas d’interruption à la suite d’une erreur. Néanmoins, dans le cas d’une installation par le gestionnaire de paquets sous Debian, le programme mysqld est géré en tant que service par systemd qui permet d’apporter une meilleure gestion des processus. De cette façon, vous disposerez également de plusieurs actions qui seront proposées au sein de la commande systemctl afin de gérer le service MySQL.

Pour rappel, la syntaxe de la commande systemctl est la suivante :

systemctl <action> <service> 

Le nom de service à utiliser en argument de la commande systemctl sera mysql.service (ou simplement...

Activité 1 : Installer MySQL Community Server

1. Introduction

Dans cette activité, nous allons installer MySQL à l’aide du gestionnaire de paquets APT sous Debian, puis nous allons effectuer quelques tests qui permettront de valider l’installation.

Pour reproduire cette activité, vous devez disposer d’une installation de Debian fonctionnelle. Vous devez également disposer d’un accès à Internet qui vous permettra d’installer les paquets à partir des dépôts officiels de MySQL. Enfin, vous devrez exécuter les commandes qui suivent en tant que root ou utiliser un compte d’utilisateur, qui dispose des droits d’administration suffisants avec la commande sudo.

2. Installation de MySQL

a. Obtenir le paquet de configuration des dépôts de MySQL

Dans un premier temps, nous allons devoir configurer les dépôts officiels de MySQL sous Debian. Pour cela, vous pouvez suivre les instructions suivantes afin d’obtenir le paquet qui vous permettra de configurer les dépôts nécessaires.

 Téléchargez le fichier .deb à l’aide de la ligne de commande suivante :

wget https://repo.mysql.com/mysql-apt-config.deb   

Cette commande vous permet de télécharger la dernière version du paquet mysql-apt-config sur le site officiel de MySQL. Cependant, dans le cas où ce fichier n’est plus accessible, vous pourrez l’obtenir en suivant les étapes ci-dessous. 

 Rendez-vous à l’adresse suivante : https://dev.mysql.com/downloads/repo/apt/

images/10RI03_1.png

Figure 1 : Capture d’écran de la page de téléchargement des paquets de configuration des dépôts

 Cliquez sur le bouton Download pour télécharger le paquet pour Debian.

 Dans la nouvelle page qui s’ouvre, vous pouvez poursuivre vers le téléchargement en cliquant sur le lien No thanks, just start my download.

images/10RI03_2.png

Figure 2 : Capture d’écran de la page de téléchargement du paquet de configuration pour Debian

 Vous obtiendrez un fichier mysql-apt-config_X.X.X-X_all.deb (où X.X.X-X correspond à la dernière version disponible).

Il s’agit du fichier mysql-apt-config_0.8.33-1_all.deb au moment de la rédaction de cet ouvrage.

 Enfin, vous...

Configuration de MySQL sous Debian

1. Arborescence des fichiers de configuration

La configuration de MySQL s’effectue généralement à travers des fichiers au format texte. Sous Debian, on les retrouve dans le répertoire /etc/mysql à la suite d’une installation de MySQL par le gestionnaire de paquets.

Ci-dessous, voici l’arborescence de fichiers que l’on retrouve dans ce répertoire.

/etc/mysql/  
├── conf.d  
│   └── mysql.cnf  
├── my.cnf  
├── my.cnf.fallback  
├── mysql.cnf  
└── mysql.conf.d  
    └── mysqld.cnf 

On distingue des fichiers de configuration avec l’extension .cnf et des répertoires dont le nom se termine par conf.d. Ces derniers permettent de regrouper des fichiers de configuration complémentaires afin d’apporter une modularité et une flexibilité dans la configuration de MySQL.

2. Les fichiers de configuration

a. Syntaxe des fichiers de configuration

Un fichier de configuration de MySQL contient généralement plusieurs lignes de texte. Chaque ligne commence par une option d’exécution suivie de la valeur qui lui est affectée.

Par exemple, la ligne suivante contient l’option pid-file qui permet de définir l’emplacement du fichier où sera stocké le PID du processus de MySQL.

pid-file        = /var/run/mysqld/mysqld.pid 

Comme pour la majorité des fichiers de configuration sous Linux, les lignes qui commencent par le symbole dièse (caractère...

Les options d’exécution de MySQL

1. Caractéristiques d’une option d’exécution

Le serveur MySQL dispose de nombreuses options qui peuvent être utilisées en argument de la commande mysqld lors de son exécution. Il s’agit de paramètres qui définissent les différentes variables qui seront utilisées par le serveur MySQL.

Les options d’exécution peuvent être utilisées en ligne de commande, mais elles sont généralement dans un fichier de configuration pour être définies de manière pérenne.

Dans la plupart des cas, c’est par les options d’exécution que les variables seront définies. Néanmoins, certaines variables pourront être également définies de manière dynamique, à partir d’une requête SQL par exemple. Dans ce cas, leur portée pourra être globale ou s’appliquer uniquement à la session en cours.

Le nom des variables concernées peut être transposé comme une option d’exécution en lui précédant des doubles tirets.

Par exemple, ci-dessous, voici le format de la variable basedir en tant qu’option d’exécution dans la ligne de commande :

mysqld --basedir 

Lorsqu’une variable contient un underscore (caractère _) dans son nom, ce caractère sera remplacé par un tiret (caractère -) dans le nom de l’option d’exécution correspondante.

Par exemple, ci-dessous, voici le format de la variable read_only en tant qu’option d’exécution dans la ligne de commande :

mysqld --read-only 

Lorsque les options d’exécution sont placées dans les fichiers de configuration, vous pourrez utiliser indifféremment un tiret (caractère -) ou un underscore (caractère _) pour le nom des options. Néanmoins, par convention, on utilisera un tiret pour distinguer le nom d’une option du nom de la variable.

Par exemple, ci-dessous, voici le format de la variable read_only en tant qu’option d’exécution dans un fichier de configuration :

[mysqld] 
ready-only 

Dans la section suivante, nous allons vous présenter quelques options d’exécution courantes pour le serveur MySQL. Pour faciliter la lecture, nous avons...

Activité 2 : Configurer MySQL

1. Introduction

Dans cette activité, nous allons réaliser une première configuration de MySQL à l’aide de l’outil en ligne de commande mysql_secure_installation, puis nous allons également appliquer une configuration personnalisée pour définir les adresses IP d’écoute de MySQL.

Pour reproduire cette activité, vous devez disposer d’une installation fonctionnelle de MySQL sous Debian. Vous devez également exécuter les commandes qui suivent en tant que root ou utiliser un compte d’utilisateur, qui dispose des droits d’administration suffisants avec la commande sudo.

2. Configuration initiale

MySQL propose un programme qui permet d’améliorer la sécurité sur votre installation. Il est recommandé d’exécuter ce programme à la suite d’une installation du logiciel, pour appliquer des recommandations essentielles en matière de sécurité pour MySQL. Pour cela, vous pouvez suivre les instructions ci-dessous.

 Depuis le terminal de commande, exécutez la ligne de commande suivante :

mysql_secure_installation 

Lorsque vous lancez cette commande, un prompt vous invite à saisir le mot de passe de l’utilisateur root de MySQL.

 Saisissez le mot de passe de l’utilisateur afin de poursuivre.

 Puis appuyez sur la touche [Entrée].

Vous pourrez ensuite procéder à la configuration initiale en répondant aux questions de l’assistant à l’aide d’un prompt qui vous permettra de saisir vos réponses. Pour cela, vous pouvez suivre les instructions suivantes.

Dans la première question, vous êtes invité à choisir d’installer ou non le composant de validation des mots de passe.

VALIDATE PASSWORD COMPONENT can be used to test passwords  
and improve security. It checks the strength of password  
and allows the users to set only those passwords which are  
secure enough. Would you like to setup VALIDATE PASSWORD component?  
 
Press y|Y for Yes, any other key for No: 

 Saisissez Y (pour Oui) pour installer le composant qui permettra de tester la robustesse des mots de passe.

 Puis appuyez sur la touche [Entrée] pour confirmer votre choix.

Dans la seconde question, vous êtes invité à...

Les moyens de connexion à MySQL

1. Le client MySQL

Afin d’interagir avec votre serveur de base de données MySQL, vous aurez besoin d’utiliser un client pour vous connecter au serveur et exécuter vos requêtes.

MySQL propose un client accessible depuis le shell avec la commande mysql. Il s’agit d’un client simple qui est installé par défaut lors de l’installation du serveur.

Le client MySQL fonctionne de manière interactive en ouvrant un shell qui vous permet de saisir des commandes et des requêtes SQL. Il fonctionne également de manière non interactive en affichant sur la sortie standard le résultat d’une commande passée en argument ou à l’aide d’un fichier de script SQL.

C’est le client qui sera utilisé pour les démonstrations qui seront présentées dans cet ouvrage. Néanmoins, il existe plusieurs alternatives que vous pourriez envisager plus tard. Nous allons vous présenter quelques-unes d’entre elles dans la section Les alternatives au client MySQL.

a. Les options d’exécutions

La commande mysql dispose de plusieurs options. Parmi elles, l’option -u qui vous permet de spécifier le nom de l’utilisateur en argument et l’option -p qui vous permet de spécifier son mot de passe en argument (sans espace entre l’option et l’argument).

Vous pouvez également spécifier les informations du serveur auquel vous souhaitez accéder, notamment grâce à l’option -h pour spécifier le nom ou l’adresse IP du serveur et l’option -P pour spécifier le port. Lorsque ces options ne sont pas spécifiées, mysql tentera de se connecter au serveur avec les valeurs par défaut. Par défaut il s’agit du serveur local (ou localhost) avec le port 3306.

Par exemple, pour vous connecter à MySQL avec l’utilisateur root depuis le serveur local, vous pouvez exécuter...

Les requêtes SQL avec MySQL

Dans la suite de cet ouvrage, nous serons amenés à utiliser des requêtes SQL pour différentes tâches d’administration des bases de données sous MySQL. Pour cette raison, vous trouverez dans cette section un bref rappel sur les requêtes SQL et une présentation des requêtes SQL avec MySQL.

1. Syntaxe d’une requête SQL

Une requête SQL commence toujours par une instruction SQL suivie des différents paramètres qui la composent, puis elle se termine toujours par le caractère ; (point-virgule).

Ci-dessous, voici un exemple d’une requête SQL :

SELECT * FROM ma_base.ma_table; 

Les instructions ne sont pas sensibles à la casse, ainsi vous pouvez écrire la requête précédente sous la forme suivante :

select * from ma_base.ma_table; 

Vous pouvez également saisir une requête SQL sur plusieurs lignes en appuyant sur la touche [Entrée] pour aller à la ligne.

Dans le client MySQL, la première ligne sera identifiée par le prompt suivant :

mysql> 

Puis chaque ligne qui compose la requête SQL sera précédée du prompt suivant :

    -> 

La saisie du caractère ; (point-virgule) marquera la fin de la requête.

Vous pouvez également utiliser les alias de commande \g (équivalent à ;) ou \G (affichage vertical) dans le client MySQL pour marquer la fin d’une requête.

Ci-dessous, voici un exemple d’une requête sur plusieurs lignes dans le client MySQL :

mysql> CREATE TABLE utilisateurs (  
    ->     nom varchar(255),  
    ->     prenom varchar(255),  
    ->     age tinyint UNSIGNED  
    -> )  
    -> ; 

2. Définition et manipulation des données

a. Gérer les bases de données

L’instruction CREATE DATABASE

Cette instruction permet de créer une base de données.

La syntaxe de cette instruction est la suivante :

CREATE DATABASE <nom>; 

Ci-dessous, voici un exemple d’utilisation de cette instruction :

CREATE DATABASE ma_db; 

L’instruction DROP DATABASE

Cette instruction...

Les bases de données avec MySQL

1. Les bases de données système

Dans une installation récente de MySQL, nous allons retrouver quatre bases de données présentes par défaut. En effet, si vous exécutez la requête SHOW DATABASES; pour lister les bases de données disponibles, vous obtiendrez le tableau suivant, qui contient une liste de quatre bases de données.

+--------------------+  
| Database           |  
+--------------------+  
| information_schema |  
| mysql              |  
| performance_schema |  
| sys                |  
+--------------------+ 

Il s’agit de différentes bases de données système qui ne doivent pas être supprimées. Les bases de données information_schema, performance_schema et sys seront utilisées à des fins d’analyse et de surveillance du serveur. La base mysql sera utilisée pour les opérations courantes du serveur, notamment la gestion des utilisateurs et des droits que nous verrons dans le prochain chapitre (cf. chapitre Aller plus loin avec MySQL - section Les utilisateurs et section Les droits).

Sous MySQL les termes bases de données (ou database, en anglais) et schémas sont utilisés conjointement pour désigner la même chose...

Activité 3 : Créer une nouvelle base de données

1. Introduction

Dans cette activité, nous allons créer une nouvelle base de données à partir d’un jeu de données d’exemple de MySQL. Cela nous permettra également d’illustrer l’utilisation des commandes présentées dans la section précédente (cf. section Les requêtes SQL avec MySQL).

Pour reproduire cette activité, vous devez disposer d’une installation de MySQL fonctionnelle. Vous devrez également ouvrir une nouvelle session en tant que root pour exécuter les commandes qui suivent, ou vous pourrez utiliser un compte d’utilisateur qui dispose des droits d’administration suffisants avec la commande sudo. Vous devrez également disposer d’une connexion à Internet afin de télécharger les fichiers nécessaires pour importer les données.

2. Prérequis

MySQL propose des jeux de données qui permettent de mettre en place des bases de données d’exemples. Il s’agit des jeux de données pour la création des bases de données world, employees, sakila, airportdb et menagerie.

Pour nos démonstrations, nous allons utiliser le jeu de données qui permet de recréer la base de données menagerie. Il nous permettra notamment d’illustrer l’utilisation de différentes instructions SQL que nous vous avons présentées précédemment. Pour cela, vous pouvez suivre les étapes ci-dessous pour recréer la base de données menagerie.

 Exécutez la ligne de commande suivante pour télécharger l’archive compressée de la base de données menagerie :

wget https://downloads.mysql.com/docs/menagerie-db.tar.gz 

 Exécutez la ligne de commande suivante pour extraire l’archive dans le répertoire /tmp :

tar zxvf menagerie-db.tar.gz -C /tmp 

Après avoir extrait l’archive dans le répertoire /tmp, vous obtenez un répertoire nommé menagerie-db sous /tmp, qui contient les fichiers suivants :

  • Le fichier cr_event_tbl.sql, qui contient la liste d’instructions pour créer la table event.

  • Le fichier cr_pet_tbl.sql, qui contient la liste d’instructions pour créer la table pet.

  • Le fichier...