Réinitialisation du mot de passe root MySQL dans un container Docker une fois installé

Lors de la création de mon script de sauvegarde de ma base SQL, je me suis aperçu que je n’avais pas le mot de passe pour le compte root sur le serveur mysql. Si vous aussi vous ne le connaissez pas, regardez en premier dans votre docker-compose si celui-ci n’avait pas été indiqué lors de sa création.

   db:
     image: mysql:5.7
     container_name: mysql
     environment:
       MYSQL_ROOT_PASSWORD: *********

Sur Internet, j’ai trouvé de nombreux tutoriels expliquant comment procéder si le serveur MySQL est sur votre machine locale. Malheureusement, aucun ne m’a aidé avec la version dockerisée. J’ai donc compilé ici les étapes pour le faire. En partant d’un fichier docker-compose.yml (simplifié)

services:
  mysql:
    image: mysql:5.7
    ports:
      - '3306:3306'
    volumes:
      - ./storage/docker/mysql:/var/lib/mysql

Nous devons créer un fichier mysql-init.sql avec les requêtes SQL pour réinitialiser le mot de passe root. Astuce : ce fichier peut contenir toutes sortes de requêtes.

Remarque : si vous utilisez MySQL 5.6 ou une version antérieure, vous devez remplacer authentication_string par Password.

USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOURNEWPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;

Maintenant, modifiez le docker-compose.yml pour monter le fichier dans le conteneur Docker.

services:
  mysql:
    # ...
    volumes:
      # ...
      - ./mysql-init.sql:/tmp/mysql-init.sql

Pour réinitialiser le mot de passe de l’utilisateur root, il est nécessaire d’exécuter les commandes suivantes.

# arrêter le conteneur s'il est en cours d'exécution
docker-compose stop mysql
# entrez dans le conteneur Docker sans démarrer le serveur MySQL
docker-compose run mysql bash
# démarrer le serveur MySQL avec le fichier init précédemment créé
mysqld_safe --init-file=/tmp/mysql-init.sql &
# attendez 10 secondes que le serveur ait fini de démarrer
# tester si le mot de passe a été modifié
mysql -u root -p
# tapez le nouveau mot de passe

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Site développé et maintenu par la société DevNet-Solutions.fr

ErosiaX est une application libertine dédiée aux rencontres libertines, offrant un espace sécurisé et discret pour explorer des affinités d'érotismes diverses. Favorisant la liberté et le respect mutuel, ErosiaX permet à ses membres libertins de découvrir des partenaires partageant des intérêts similaires dans une communautée libertine ouverte et accueillante.