Qu'est-ce que MySQL ?
MySQL est un système de gestion de bases de données relationnelles (SGBDR) open-source, créé en 1995 et aujourd'hui propriété d'Oracle Corporation. C'est le composant "M" de la pile LAMP (Linux, Apache, MySQL, PHP), l'architecture serveur web la plus répandue au monde.
Concrètement, MySQL stocke toutes les données dynamiques d'un site web : les articles d'un blog, les comptes utilisateurs, les produits d'une boutique, les commandes, les paramètres de configuration… Chaque fois qu'une page WordPress se charge, PHP envoie des dizaines de requêtes MySQL pour récupérer le contenu à afficher.
MySQL vs MariaDB
MariaDB est un fork (dérivé) open-source de MySQL créé en 2009 par Monty Widenius, l'un des fondateurs de MySQL, suite au rachat de MySQL par Oracle. MariaDB est compatible avec MySQL mais apporte :
- De meilleures performances sur les charges importantes
- Des améliorations de sécurité
- Des fonctionnalités supplémentaires
- Un développement communautaire plus actif
De nombreux hébergeurs, dont Gaprod, utilisent MariaDB à la place de MySQL, tout en maintenant une compatibilité totale avec les applications MySQL existantes.
Les bases du SQL
SQL (Structured Query Language) est le langage utilisé pour interagir avec MySQL. Voici les opérations fondamentales :
Requêtes de lecture
-- Sélectionner tous les articles publiés
SELECT * FROM wp_posts WHERE post_status = 'publish';
-- Compter les utilisateurs
SELECT COUNT(*) FROM wp_users;
Requêtes de modification
-- Insérer un nouvel enregistrement
INSERT INTO wp_options (option_name, option_value) VALUES ('siteurl', 'https://monsite.fr');
-- Mettre à jour un enregistrement
UPDATE wp_options SET option_value = 'https://monsite.fr' WHERE option_name = 'siteurl';
-- Supprimer un enregistrement
DELETE FROM wp_posts WHERE post_status = 'trash';
MySQL dans l'hébergement web
phpMyAdmin
phpMyAdmin est l'interface graphique de gestion MySQL la plus répandue. Inclus dans cPanel, il permet de :
- Parcourir les tables et leur contenu
- Exécuter des requêtes SQL personnalisées
- Importer et exporter des bases de données (formats SQL, CSV, JSON)
- Gérer les utilisateurs et leurs permissions
- Optimiser les tables
Créer une base de données MySQL dans cPanel
- Accédez à cPanel → Bases de données MySQL
- Créez une nouvelle base de données
- Créez un utilisateur MySQL avec un mot de passe fort
- Associez l'utilisateur à la base de données avec les permissions souhaitées
Connexion sécurisée
La connexion à MySQL depuis PHP se fait généralement via PDO (PHP Data Objects) ou MySQLi :
// Connexion PDO sécurisée
$pdo = new PDO(
'mysql:host=localhost;dbname=ma_base;charset=utf8mb4',
'mon_utilisateur',
'mon_mot_de_passe',
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
Optimisation des performances MySQL
Quelques bonnes pratiques pour maintenir une base de données performante :
- Index — Créez des index sur les colonnes fréquemment utilisées dans les clauses WHERE et JOIN.
- Optimisation des tables — Lancez régulièrement
OPTIMIZE TABLEpour défragmenter. - Analyse des requêtes lentes — Activez le slow query log pour identifier les requêtes problématiques.
- Mise en cache — Utilisez le cache d'objets (Redis, Memcached) pour éviter des requêtes répétitives.
- Sauvegardes régulières — Exportez vos bases de données régulièrement depuis phpMyAdmin ou via les outils de sauvegarde cPanel.
MySQL et WordPress
WordPress utilise une base de données MySQL pour stocker :
- Les articles et pages (
wp_posts) - Les utilisateurs (
wp_users) - Les métadonnées (
wp_postmeta,wp_usermeta) - Les options de configuration (
wp_options) - Les commentaires (
wp_comments) - Les taxonomies et termes (
wp_terms,wp_term_taxonomy)
Une base WordPress standard contient une douzaine de tables, mais certaines extensions en créent des dizaines supplémentaires.
Préfixe de tables
Lors de l'installation de WordPress, changez le préfixe de tables par défaut wp_ par quelque chose d'unique comme g7x_. Cela complique les attaques SQL par injection ciblées qui présupposent le préfixe standard.