Aller au contenu
Runbook

Installer MySQL sur Docker

Base de données relationnelle SQL open source très répandue.

Base de donnéessqlrdbmsrelationaldatabaseacid

Installation

Conteneur (image officielle) · Docker
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=secret -p 3306:3306 -v mysqldata:/var/lib/mysql mysql:8

Remplacez « secret » par un mot de passe fort. Le volume nommé mysqldata persiste les données.

Vérifier l'installation

Vérifier
docker exec mysql mysql --version

Fichiers importants

TypeCheminDescription
data/var/lib/mysqlRépertoire de données À L'INTÉRIEUR du conteneur, à monter sur un volume pour la persistance.

Ports par défaut

3306

Outils en ligne de commande

  • mysqlClient SQL interactif, accessible via docker exec.
  • mysqladminClient d'administration, via docker exec.

Désinstaller

Supprimer le conteneur
docker rm -f mysql

Ne supprime PAS le volume mysqldata.

Supprimer aussi les données
docker volume rm mysqldata

Irréversible : détruit toutes les données.

À savoir

  • MYSQL_ROOT_PASSWORD est OBLIGATOIRE au premier démarrage (les alternatives MYSQL_ALLOW_EMPTY_PASSWORD / MYSQL_RANDOM_ROOT_PASSWORD sont déconseillées).
  • Sans volume, les données sont perdues au retrait du conteneur : utilisez toujours un volume nommé ou un bind mount.
  • Variables utiles : MYSQL_DATABASE, MYSQL_USER et MYSQL_PASSWORD créent une base et un utilisateur au démarrage.

Démarrer MySQL avec Docker

L'image officielle mysql fournit un serveur prêt à l'emploi. La commande ci-dessus lance un conteneur détaché, publie le port 3306 et stocke les données dans le volume nommé mysqldata. MYSQL_ROOT_PASSWORD est obligatoire au premier démarrage.

Persistance des données

Le répertoire de données interne est /var/lib/mysql. Sans volume, les données disparaissent au retrait du conteneur. Le volume nommé mysqldata conserve vos bases au fil des recréations.

Personnalisation et connexion

Définissez MYSQL_DATABASE, MYSQL_USER et MYSQL_PASSWORD pour créer une base et un utilisateur au démarrage. Ouvrez un shell SQL avec docker exec -it mysql mysql -u root -p ; depuis l'hôte, connectez-vous à localhost:3306.