Guide des commandes MySQL : Bases du niveau débutant à intermédiaire, CRUD, utilisateurs, sauvegarde et dépannage

目次

1. Introduction

MySQL est une base de données relationnelle open‑source largement utilisée parmi les systèmes de gestion de bases de données (SGBD). Elle est particulièrement populaire pour les applications web et les systèmes d’entreprise. Dans cet article, nous expliquerons en détail les commandes essentielles de MySQL et structurerons le contenu afin que les utilisateurs débutants à intermédiaires puissent apprendre en douceur.

1.1 Qu’est‑ce que MySQL ?

MySQL est un logiciel utilisé pour gérer une base de données relationnelle (BDR). Les données sont stockées dans des tables, et vous les manipulez à l’aide du SQL (Structured Query Language). MySQL possède les caractéristiques suivantes :

  • Open‑source et gratuit pour tous
  • Performance rapide et légère
  • Compatible avec de nombreux langages de programmation (comme PHP, Python et Java)
  • Adapté à la gestion de bases de données à grande échelle

1.2 Avantages d’apprendre les commandes MySQL

Pour utiliser MySQL efficacement, il est important de comprendre les commandes de base. Les principaux avantages incluent :

  • Gestion des données plus efficace : Maîtriser les commandes SQL vous permet de récupérer, mettre à jour et supprimer des données rapidement
  • Automatisation des flux de travail : L’utilisation de scripts vous permet d’automatiser les opérations de base de données
  • Gestion des erreurs plus fluide : En cas de problème, vous pouvez les résoudre avec les commandes SQL appropriées

1.3 Ce que vous apprendrez dans cet article

Cet article explique en détail les sujets suivants :

  • Opérations de base MySQL (démarrage, connexion et opérations sur les bases de données)
  • Ajout, récupération, mise à jour et suppression de données (opérations CRUD)
  • Gestion des utilisateurs et paramètres de privilèges
  • Commandes utiles et dépannage

Ensuite, nous parcourrons chaque section dans l’ordre. Commençons par les opérations de base MySQL.

2. Opérations de base MySQL (débutants)

2.1 Démarrage et connexion à MySQL

2.1.1 Démarrage de MySQL

Comme MySQL fonctionne comme un programme serveur, vous devez d’abord démarrer le serveur. La méthode de démarrage varie selon le système d’exploitation.

Démarrage sous Linux / macOS

Sous Linux et macOS, vous pouvez démarrer MySQL en utilisant la commande systemctl.

sudo systemctl start mysql

Vérifier si MySQL fonctionne

sudo systemctl status mysql

Si vous voyez « active (running) », MySQL fonctionne normalement.

Démarrage sous Windows

Sous Windows, MySQL est souvent exécuté en tant que service, vous pouvez donc utiliser la commande net start.

net start mysql

Ou, si vous utilisez XAMPP, ouvrez le panneau de contrôle XAMPP et cliquez sur « Start » pour « MySQL ».

2.1.2 Connexion à MySQL

Pour vous connecter à MySQL, utilisez la commande mysql. La commande de connexion de base est la suivante :

mysql -u username -p
Connexion en tant qu’utilisateur root

Par défaut, l’utilisateur root est configuré comme administrateur. Vous pouvez vous connecter avec la commande suivante :

mysql -u root -p

Après avoir appuyé sur Entrée, il vous sera demandé de saisir un mot de passe. Si vous saisissez le bon mot de passe, vous pourrez vous connecter à MySQL.

Connexion à un hôte spécifique

Pour vous connecter à un serveur MySQL distant, utilisez l’option -h.

mysql -h hostname -u username -p

Par exemple, pour vous connecter à un serveur MySQL à l’adresse 192.168.1.100, écrivez :

mysql -h 192.168.1.100 -u root -p
Connexion en spécifiant un numéro de port

Le port MySQL par défaut est 3306. S’il a été modifié, vous pouvez le spécifier avec l’option -P.

mysql -h 192.168.1.100 -P 3307 -u root -p

2.2 Commandes MySQL de base

Une fois connecté à MySQL, essayez d’exécuter quelques commandes de base.

2.2.1 Vérifier la version de MySQL

Pour vérifier la version de MySQL que vous utilisez actuellement, exécutez la commande suivante :

SELECT VERSION();

2.2.2 Vérifier la base de données actuelle

Pour vérifier quelle base de données est actuellement sélectionnée, exécutez :

SELECT DATABASE();

Si aucune base de données n’est sélectionnée, NULL est renvoyé.

2.2.3 Lister les bases de données disponibles

Pour lister les bases de données existant dans MySQL, utilisez :

SHOW DATABASES;

2.3 Erreurs courantes et solutions

2.3.1 Erreur « Access denied »

Example error:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Comment corriger :
  1. Vérifiez que le mot de passe est correct
  2. Vérifiez et réinitialisez les privilèges root
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEW_PASSWORD';
    FLUSH PRIVILEGES;
    

2.3.2 Erreur « Impossible de se connecter au serveur MySQL sur ‘localhost’ »

Exemple d’erreur :

ERROR 2002 (HY000): Can't connect to MySQL server on 'localhost' (10061)
Comment corriger :
  1. Vérifiez si MySQL fonctionne ( systemctl status mysql )
  2. Redémarrez MySQL
    sudo systemctl restart mysql
    

2.4 Résumé

Dans cette section, nous avons expliqué comment démarrer MySQL et s’y connecter.

3. Opérations sur les bases de données

Dans MySQL, vous créez une base de données pour gérer les données, puis organisez les informations en plaçant des tables à l’intérieur. Dans cette section, nous expliquerons en détail les opérations de base telles que la création, la sélection, la liste et la suppression des bases de données.

3.1 Création d’une base de données

Pour créer une base de données dans MySQL, utilisez la commande CREATE DATABASE.

3.1.1 Créer une base de données basique

Si vous exécutez la commande SQL suivante, vous pouvez créer une nouvelle base de données nommée my_database.

CREATE DATABASE my_database;
Message lorsque la création réussit
Query OK, 1 row affected (0.01 sec)

3.1.2 Lorsque vous essayez de créer une base de données qui existe déjà

Si la base de données existe déjà, vous verrez une erreur comme celle-ci :

ERROR 1007 (HY000): Can't create database 'my_database'; database exists

Pour éviter cette erreur, il est utile d’ajouter l’option IF NOT EXISTS.

CREATE DATABASE IF NOT EXISTS my_database;

Lorsque vous exécutez cette commande, la base de données n’est créée que si elle n’existe pas déjà.

3.2 Lister les bases de données

Pour vérifier quelles bases de données existent sur le serveur MySQL actuel, utilisez la commande SHOW DATABASES.

SHOW DATABASES;

Exemple de sortie :

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

Remarque : Les bases de données système comme mysql et information_schema sont nécessaires à l’administration de MySQL.

3.3 Sélection d’une base de données

Dans MySQL, vous devez sélectionner la base de données que vous souhaitez utiliser. Pour spécifier une base de données, exécutez la commande USE.

USE my_database;
Message en cas de succès
Database changed

Pour confirmer quelle base de données est actuellement sélectionnée, utilisez la commande suivante :

SELECT DATABASE();

Exemple de sortie :

+------------+
| DATABASE() |
+------------+
| my_database |
+------------+

3.4 Suppression d’une base de données

Pour supprimer une base de données dont vous n’avez plus besoin, utilisez la commande DROP DATABASE.

DROP DATABASE my_database;

3.4.1 Notes importantes avant la suppression

  • Attention : la suppression d’une base de données supprime toutes les données !
  • Pour éviter les erreurs accidentelles, vous pouvez également ajouter IF EXISTS.
    DROP DATABASE IF EXISTS my_database;
    

Cette commande se termine sans erreur même si my_database n’existe pas.

3.5 Erreurs courantes et solutions

3.5.1 Erreur « Access denied for user »

Exemple d’erreur :

ERROR 1044 (42000): Access denied for user 'user_name'@'localhost' to database 'my_database'
Comment corriger
  • Accordez les privilèges en utilisant la commande GRANT
    GRANT ALL PRIVILEGES ON my_database.* TO 'user_name'@'localhost';
    FLUSH PRIVILEGES;
    

3.5.2 Erreur « Can’t drop database »

Exemple d’erreur :

ERROR 1010 (HY000): Error dropping database (can't rmdir './my_database', errno: 39)
Comment corriger
  • Redémarrez MySQL
    sudo systemctl restart mysql
    
  • Supprimez d’abord toutes les tables de my_database, puis exécutez DROP DATABASE .

3.6 Résumé

Dans cette section, vous avez appris comment créer, sélectionner, lister et supprimer des bases de données.

4. Opérations sur les tables

Après avoir créé une base de données, vous devez créer des tables à l’intérieur pour organiser les données. Une table est comme une grille de stockage des données, composée de colonnes et de lignes (enregistrements).

Dans cette section, nous expliquerons en détail les opérations de base telles que créer, vérifier, lister et supprimer des tables.

4.1 Création d’une table

Pour créer une table, utilisez la commande CREATE TABLE. Si vous exécutez le SQL suivant, il crée une table nommée users.

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.1.1 Explication de chaque élément lors de la création d’une table

  • id INT AUTO_INCREMENT PRIMARY KEY
  • La colonne id est un entier (INT), s’incrémente automatiquement (AUTO_INCREMENT) et est définie comme clé primaire (PRIMARY KEY).
  • name VARCHAR(50) NOT NULL
  • La colonne name est une chaîne (VARCHAR) de jusqu’à 50 caractères et est obligatoire grâce à NOT NULL.
  • email VARCHAR(100) UNIQUE NOT NULL
  • La colonne email est une chaîne de jusqu’à 100 caractères, et la contrainte UNIQUE empêche les adresses e‑mail en double.
  • created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  • La colonne created_at définit automatiquement la date/heure actuelle comme valeur par défaut.
Message en cas de succès
Query OK, 0 rows affected (0.02 sec)

4.2 Vérification de la structure d’une table

Pour vérifier la structure d’une table que vous avez créée, utilisez DESC ou SHOW COLUMNS.

DESC users;

Ou

SHOW COLUMNS FROM users;

Exemple de sortie :

+------------+--------------+------+-----+-------------------+----------------+
| Field      | Type         | Null | Key | Default           | Extra          |
+------------+--------------+------+-----+-------------------+----------------+
| id         | int(11)      | NO   | PRI | NULL              | auto_increment |
| name       | varchar(50)  | NO   |     | NULL              |                |
| email      | varchar(100) | NO   | UNI | NULL              |                |
| created_at | timestamp    | YES  |     | CURRENT_TIMESTAMP |                |
+------------+--------------+------+-----+-------------------+----------------+

4.3 Lister les tables

Pour lister les tables existant dans la base de données actuelle, exécutez la commande SHOW TABLES.

SHOW TABLES;

Exemple de sortie :

+------------------+
| Tables_in_mydb   |
+------------------+
| users            |
| products         |
| orders           |
+------------------+

4.4 Suppression d’une table

Pour supprimer une table dont vous n’avez plus besoin, utilisez la commande DROP TABLE.

DROP TABLE users;

4.4.1 Notes importantes lors de la suppression d’une table

  • Attention : supprimer une table supprime définitivement les données !
  • Pour éviter les erreurs lors de la suppression, ajoutez IF EXISTS .
    DROP TABLE IF EXISTS users;
    
Message en cas de succès
Query OK, 0 rows affected (0.01 sec)

4.5 Réinitialisation des données d’une table (supprimer toutes les lignes)

Si vous souhaitez conserver la structure de la table mais supprimer uniquement les données qu’elle contient, utilisez TRUNCATE TABLE.

TRUNCATE TABLE users;
Différence avec DROP TABLE
  • DROP TABLE supprime la table elle‑même.
  • TRUNCATE TABLE supprime uniquement les données et conserve la structure de la table.

4.6 Erreurs courantes et solutions

4.6.1 Erreur « La table existe déjà »

Exemple d’erreur :

ERROR 1050 (42S01): Table 'users' already exists
Comment corriger
  • Vérifiez les tables existantes
    SHOW TABLES;
    
  • Créez la table avec IF NOT EXISTS
    CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(50) NOT NULL,
        email VARCHAR(100) UNIQUE NOT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    

4.6.2 Erreur « Table inconnue »

Exemple d’erreur :

ERROR 1051 (42S02): Unknown table 'users'
Comment corriger
  • Vérifiez si la table existe en utilisant SHOW TABLES;
  • Si elle n’existe pas, ajoutez IF EXISTS
    DROP TABLE IF EXISTS users;
    

4.7 Résumé

Dans cette section, nous avons couvert les opérations de base sur les tables MySQL : création, vérification et suppression de tables.