Maison >base de données >tutoriel mysql >Comment initialiser une base de données MySQL avec un schéma dans un conteneur Docker ?

Comment initialiser une base de données MySQL avec un schéma dans un conteneur Docker ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-25 12:34:09171parcourir

How to Initialize a MySQL Database with Schema Inside a Docker Container?

Initialiser une base de données MySQL avec un schéma dans un conteneur Docker

L'initialisation d'une base de données MySQL avec un schéma dans un conteneur Docker peut être difficile. Voici une solution pour résoudre ce problème :

1. Dump MySQL Schema

Dumpez votre schéma MySQL dans un fichier à l'aide de la commande suivante :

mysqldump -h <your_mysql_host> -u <user_name> -p --no-data <schema_name> > schema.sql

2. Ajouter un fichier de schéma au Dockerfile

Dans votre Dockerfile, ajoutez le fichier de schéma au répertoire /docker-entrypoint-initdb.d à l'aide de la commande ADD. Le script docker-entrypoint.sh dans le conteneur exécutera tous les fichiers .sql de ce répertoire sur la base de données.

Exemple de fichier Docker :

FROM mysql:5.7.15

MAINTAINER me

ENV MYSQL_DATABASE=<schema_name> \
    MYSQL_ROOT_PASSWORD=<password>

ADD schema.sql /docker-entrypoint-initdb.d

EXPOSE 3306

3. Construire et exécuter le conteneur Docker

Une fois le fichier Docker modifié, créez et exécutez le conteneur :

docker-compose build
docker-compose up

4. Notes supplémentaires

  • Assurez-vous que l'utilisateur MySQL dispose de privilèges suffisants pour créer la base de données et les tables.
  • Ajustez l'hôte MySQL, le nom d'utilisateur, le mot de passe et le nom de schéma selon vos besoins. .
  • Vérifiez que le script docker-entrypoint.sh est exécutable par l'utilisateur root dans le conteneur, car il est responsable de l'exécution du initialisation du schéma.

En suivant ces étapes, vous pouvez initialiser avec succès une base de données MySQL avec un schéma dans un conteneur Docker et éliminer le problème de la non-exécution correcte du CMD.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn