Mysql

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type SGBD relationnel (Système de Gestion de Base de Données)
Éditeur Oracle Corporation (racheté avec Sun Microsystems en 2010)
Fork majeur MariaDB (créé en 2009 par les fondateurs de MySQL, en réaction au rachat par Oracle)
Port par défaut TCP 3306
Fichier de configuration my.cnf
Voir aussi My.cnf · Mysqladmin · Mysqldump · Mysqlcheck · Reset password · Phpmyadmin · Innotop · Mtop

MySQL est un système de gestion de base de données relationnelles open source, le plus utilisé au monde avec PostgreSQL. Le serveur (démon mysqld) écoute par défaut sur le port TCP 3306 ; l'administration se fait via le client en ligne de commande mysql, les outils dédiés (mysqladmin, mysqldump, mysqlcheck...) ou une interface graphique comme phpMyAdmin.

Cette page sert de hub vers les autres fiches MySQL du wiki : configuration, outils d'administration, supervision, commandes SQL et cluster/réplication.

Architecture

MySQL supporte plusieurs moteurs de stockage (storage engines), sélectionnables par table :

  • InnoDB — moteur par défaut depuis MySQL 5.5, transactionnel (ACID), gestion des clés étrangères, verrouillage au niveau ligne. À utiliser dans l'immense majorité des cas.
  • MyISAM — ancien moteur historique, non transactionnel, verrouillage au niveau table. Encore présent sur certaines installations anciennes ; voir MyISAM pour ses spécificités.
  • NDB (MySQL Cluster) — moteur distribué en mémoire pour la haute disponibilité, voir MySQL Cluster.

Administration de base

  • My.cnf — fichier de configuration du serveur ([mysqld], [client]...)
  • Mysqladmin — administration en ligne de commande (statut, threads, flush, arrêt du serveur...)
  • Mysqlcheck — vérification, réparation et optimisation des tables
  • Mysqldump — sauvegarde logique (export SQL)
  • mysql_config_editor — stockage des identifiants de connexion hors clair
  • Reset password — récupération de l'accès root en cas de mot de passe perdu

Commandes SQL usuelles

Fiches dédiées aux commandes et opérations SQL courantes :

Contrainte d'intégrité

Désactiver temporairement la vérification des clés étrangères (utile lors d'un import massif ou d'une restauration dans le désordre) :

SET FOREIGN_KEY_CHECKS = 0;
-- ... opérations ...
SET FOREIGN_KEY_CHECKS = 1;

À réactiver systématiquement ensuite : la désactivation ne supprime pas les contraintes, elle empêche seulement leur vérification pendant la fenêtre où elle est active — des données incohérentes peuvent être insérées entre-temps.

Tests de charge

L'outil mysqlslap (fourni avec le client MySQL) permet de simuler une charge de connexions/requêtes concurrentes pour du benchmark : voir la documentation officielle mysqlslap.

Supervision

  • Innotop — supervision temps réel façon top, actif et maintenu
  • Mtop — outil plus ancien, dépendant d'un dépôt aujourd'hui fermé

Cluster et variantes

  • MySQL Cluster — architecture distribuée haute disponibilité (moteur NDB)
  • MariaDB — fork communautaire, compatible au niveau protocole/API dans la plupart des cas

Voir aussi