<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Root on slash-root.fr</title><link>https://beta.slash-root.fr/tags/root/</link><description>Recent content in Root on slash-root.fr</description><generator>Hugo -- gohugo.io</generator><language>fr-fr</language><lastBuildDate>Mon, 17 Jun 2024 15:57:47 +0200</lastBuildDate><atom:link href="https://beta.slash-root.fr/tags/root/index.xml" rel="self" type="application/rss+xml"/><item><title>MySQL : Réinitialisation du mot de passe root dans un conteneur Docker</title><link>https://beta.slash-root.fr/mysql-reinitialisation-du-mot-de-passe-root-dans-un-conteneur-docker/</link><pubDate>Mon, 17 Jun 2024 15:57:47 +0200</pubDate><guid>https://beta.slash-root.fr/mysql-reinitialisation-du-mot-de-passe-root-dans-un-conteneur-docker/</guid><description>&lt;img src="https://beta.slash-root.fr/mysql-reinitialisation-du-mot-de-passe-root-dans-un-conteneur-docker/cover.jpg" alt="Featured image of post MySQL : Réinitialisation du mot de passe root dans un conteneur Docker" /&gt;&lt;h2 id="introduction"&gt;&lt;a href="#introduction" class="header-anchor"&gt;&lt;/a&gt;Introduction
&lt;/h2&gt;&lt;p&gt;Dans certains cas, vous pouvez perdre ou oublier le mot de passe root de votre base de données MySQL, rendant ainsi difficile l'exécution de tâches administratives essentielles. Cela peut se produire si le mot de passe a été généré automatiquement lors de l'initialisation du conteneur et non enregistré. Ce guide explique comment réinitialiser le mot de passe root de MySQL dans un environnement Docker.&lt;/p&gt;
&lt;h2 id="préparation"&gt;&lt;a href="#pr%c3%a9paration" class="header-anchor"&gt;&lt;/a&gt;Préparation
&lt;/h2&gt;&lt;h3 id="1-créer-le-fichier-de-réinitialisation"&gt;&lt;a href="#1-cr%c3%a9er-le-fichier-de-r%c3%a9initialisation" class="header-anchor"&gt;&lt;/a&gt;1. Créer le fichier de réinitialisation
&lt;/h3&gt;&lt;p&gt;Commencez par créer un fichier &lt;code&gt;mysql-init.sql&lt;/code&gt; dans le même répertoire que votre fichier &lt;code&gt;docker-compose.yml&lt;/code&gt;. Ce fichier contiendra une requête SQL pour réinitialiser le mot de passe root.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;USE mysql;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;ALTER&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;USER&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;root&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;@&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt; IDENTIFIED &lt;span style="color:#66d9ef"&gt;BY&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;NEWPASSWORD&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;FLUSH &lt;span style="color:#66d9ef"&gt;PRIVILEGES&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Remplacez &lt;code&gt;NEWPASSWORD&lt;/code&gt; par le nouveau mot de passe souhaité.&lt;/p&gt;
&lt;h3 id="2-modifier-docker-composeyml"&gt;&lt;a href="#2-modifier-docker-composeyml" class="header-anchor"&gt;&lt;/a&gt;2. Modifier &lt;code&gt;docker-compose.yml&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Pour utiliser le fichier de réinitialisation avec Docker, vous devez monter ce fichier dans le conteneur MySQL.&lt;/p&gt;
&lt;p&gt;Ajoutez ou modifiez la section &lt;code&gt;volumes&lt;/code&gt; pour inclure le montage du fichier &lt;code&gt;mysql-init.sql&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;services&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;mysql&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Autres configurations de service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;volumes&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Autres volumes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;./mysql-init.sql:/tmp/mysql-init.sql&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="processus-de-réinitialisation"&gt;&lt;a href="#processus-de-r%c3%a9initialisation" class="header-anchor"&gt;&lt;/a&gt;Processus de Réinitialisation
&lt;/h2&gt;&lt;h3 id="1-arrêter-le-conteneur-mysql"&gt;&lt;a href="#1-arr%c3%aater-le-conteneur-mysql" class="header-anchor"&gt;&lt;/a&gt;1. Arrêter le conteneur MySQL
&lt;/h3&gt;&lt;p&gt;Avant de réinitialiser le mot de passe, assurez-vous d'arrêter le conteneur MySQL :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose stop mysql
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-accéder-au-conteneur"&gt;&lt;a href="#2-acc%c3%a9der-au-conteneur" class="header-anchor"&gt;&lt;/a&gt;2. Accéder au conteneur
&lt;/h3&gt;&lt;p&gt;Lancez le conteneur MySQL sans démarrer le service pour obtenir un shell bash :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose run mysql bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-exécuter-le-script-de-réinitialisation"&gt;&lt;a href="#3-ex%c3%a9cuter-le-script-de-r%c3%a9initialisation" class="header-anchor"&gt;&lt;/a&gt;3. Exécuter le script de réinitialisation
&lt;/h3&gt;&lt;p&gt;Dans le conteneur, lancez MySQL avec le fichier de réinitialisation :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysqld --init-file&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/tmp/mysql-init.sql &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Attendez quelques instants que le processus se termine. Vous pouvez vérifier si le mot de passe a été réinitialisé en tentant une connexion à MySQL.&lt;/p&gt;
&lt;h3 id="4-nettoyer-et-relancer-le-service"&gt;&lt;a href="#4-nettoyer-et-relancer-le-service" class="header-anchor"&gt;&lt;/a&gt;4. Nettoyer et relancer le service
&lt;/h3&gt;&lt;p&gt;Quittez le conteneur et supprimez le montage du fichier SQL dans &lt;code&gt;docker-compose.yml&lt;/code&gt; :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Supprimez ou commentez la ligne &lt;code&gt;- ./mysql-init.sql:/tmp/mysql-init.sql&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ensuite, arrêtez complètement la stack Docker :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose down
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Relancez la stack :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="vérification"&gt;&lt;a href="#v%c3%a9rification" class="header-anchor"&gt;&lt;/a&gt;Vérification
&lt;/h2&gt;&lt;p&gt;Pour vérifier que le nouveau mot de passe fonctionne, essayez de vous connecter à MySQL en utilisant le nouveau mot de passe :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker exec -it &amp;lt;CONTENEUR_MYSQL&amp;gt; mysql -u root -p
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Remplacez &lt;code&gt;&amp;lt;CONTENEUR_MYSQL&amp;gt;&lt;/code&gt; par l'ID ou le nom du conteneur MySQL.&lt;/p&gt;</description></item></channel></rss>