
{"id":418,"date":"2009-01-16T16:17:22","date_gmt":"2009-01-16T15:17:22","guid":{"rendered":"http:\/\/dasini.net\/blog\/?p=418"},"modified":"2017-03-12T20:24:47","modified_gmt":"2017-03-12T19:24:47","slug":"jai-perdu-mon-mot-de-passe-root","status":"publish","type":"post","link":"https:\/\/dasini.net\/blog\/2009\/01\/16\/jai-perdu-mon-mot-de-passe-root\/","title":{"rendered":"Aie! J&rsquo;ai perdu mon mot de passe root MySQL"},"content":{"rendered":"<p>En cas de perte du mot de passe root surtout si c&rsquo;est votre seul compte (super) administrateur, vous vous trouvez dans une situation pour le moins embarrassante.<br \/>\nMySQL propose un moyen de s&rsquo;en sortir. Certes, si le mot de passe est perdu vous ne pourrai pas le r\u00e9cup\u00e9rer, car il est stock\u00e9 hach\u00e9 dans la base:<\/p>\n<pre class=\"lang:mysql decode:true \">mysql&gt; SELECT user, password FROM mysql.user;\r\n +---------+-------------------------------------------+\r\n | user    | password                                  |\r\n +---------+-------------------------------------------+\r\n | root    | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |\r\n +---------+-------------------------------------------+\r\n 1 rows in set (0.39 sec)<\/pre>\n<p>N\u00e9anmoins il est possible de le changer. Voici les \u00e9tapes \u00e0 suivre:<\/p>\n<p>&nbsp;<\/p>\n<h2>1\/ Arr\u00eater le serveur MySQL<\/h2>\n<p>Cela ne devrait pas poser trop de probl\u00e8mes:<br \/>\nmysql stop (sous linux)<br \/>\nNET STOP MySQL (sous windows)<br \/>\n&#8230;<br \/>\nou dans le pire des cas, d\u00e9branchez la machine \ud83d\ude42<\/p>\n<p>&nbsp;<\/p>\n<h2>2\/ D\u00e9marrer le serveur en d\u00e9sactivant la v\u00e9rifications des droits<\/h2>\n<pre class=\"lang:mysql decode:true\">$ mysqld --skip-grant-tables<\/pre>\n<p>Il important de noter qu&rsquo;une fois d\u00e9marr\u00e9 avec <strong>skip-grant-table<\/strong>, n&rsquo;importe qui peut se connecter au serveur MySQL et avec tout les droits&#8230; Inutile de pr\u00e9ciser que le serveur est \u00e0 ce moment <span style=\"text-decoration: underline;\">particuli\u00e8rement vuln\u00e9rable<\/span>.<\/p>\n<p>&nbsp;<\/p>\n<h2>3\/ Connexion au serveur MySQL<\/h2>\n<p>Connectez vous au serveur mysql, comme \u00e0 l&rsquo;accoutum\u00e9e.<\/p>\n<pre class=\"lang:mysql decode:true\">$ mysql --user=UtilisateurExistantPas --password=MotDePasse\r\n\r\nWelcome to the MySQL monitor.\u00a0 Commands end with ; or \\g.\r\n Your MySQL connection id is 2\r\n Server version: 5.1.30-community-log MySQL Community Server (GPL)\r\nType 'help;' or '\\h' for help. Type '\\c' to clear the buffer.\r\nmysql&gt;<\/pre>\n<p>&nbsp;<\/p>\n<h2>4\/ Prot\u00e9ger le serveur<\/h2>\n<p>La premi\u00e8re chose \u00e0 faire, une fois connect\u00e9 est de s\u00e9curiser le serveur en remettant en place la v\u00e9rification des droits:<\/p>\n<pre class=\"\">mysql&gt; FLUSH PRIVILEGES;<\/pre>\n<pre class=\"lang:mysql decode:true\">$ mysql --user=UtilisateurExistantPas --password=MotDePasse\r\n ERROR 1045 (28000): Access denied for user 'UtilisateurExistantPas'@'localhost'\r\n(using password: YES)<\/pre>\n<p>&nbsp;<\/p>\n<h2>5\/ Changer le mot de passe<\/h2>\n<p>L&rsquo;heure est enfin venue de se cr\u00e9er un nouveau mot de passe root<\/p>\n<pre class=\"lang:mysql decode:true\">mysql&gt; SET PASSWORD FOR root@localhost=PASSWORD('m0T2pA55e');\r\n Query OK, 0 rows affected (0.06 sec)<\/pre>\n<p>&nbsp;<\/p>\n<h2>6\/ Arr\u00eater le serveur<\/h2>\n<p>Pour sortir de la configuration <strong>skip-grant-tables<\/strong>, il faut arr\u00eater le serveur, pour mieux le red\u00e9marrer&#8230;<\/p>\n<p>&nbsp;<\/p>\n<h2>7\/ Red\u00e9marrer le serveur normalement<\/h2>\n<p>et le tour est jou\u00e9 \ud83d\ude42<\/p>\n<pre class=\"lang:mysql decode:true\">$ mysql --user=root --password=m0T2pA55e\r\n\r\nWelcome to the MySQL monitor.&amp;nbsp; Commands end with ; or \\g.\r\nYour MySQL connection id is 1\r\nServer version: 5.1.30-community-log MySQL Community Server (GPL)\r\n\r\nType 'help;' or '\\h' for help. Type '\\c' to clear the buffer.\r\n\r\nmysql&gt;<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En cas de perte du mot de passe root surtout si c&rsquo;est votre seul compte (super) administrateur, vous vous trouvez dans une situation pour le moins embarrassante.<br \/>\nMySQL propose un moyen de s&rsquo;en sortir.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"categories":[88,8],"tags":[89,90,92,91],"class_list":["post-418","post","type-post","status-publish","format-standard","hentry","category-astuce","category-mysql","tag-mot-de-passe-root","tag-passowrd","tag-set-password","tag-skip-grant-tables"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9LfWW-6K","jetpack-related-posts":[{"id":76,"url":"https:\/\/dasini.net\/blog\/2008\/11\/11\/hash-securite-mysql\/","url_meta":{"origin":418,"position":0},"title":"Hash, s\u00e9curit\u00e9 &#038; MySQL","author":"Olivier DASINI","date":"11 novembre 2008","format":false,"excerpt":"Une fonction de hash est une fonction qui prend une cha\u00eene de caract\u00e8res en entr\u00e9e et qui renvoi une autre chaine de caract\u00e8res. La cha\u00eene de caract\u00e8res r\u00e9sultat a toujours la m\u00eame longueur et est strictement identique pour une m\u00eame entr\u00e9e. Une des utilisations du hashage sert a masquer les\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1832,"url":"https:\/\/dasini.net\/blog\/2017\/03\/13\/tester-mysql-innodb-cluster\/","url_meta":{"origin":418,"position":1},"title":"Tester MySQL InnoDB Cluster","author":"Olivier DASINI","date":"13 mars 2017","format":false,"excerpt":"MySQL InnoDB Cluster est la (future) solution out-of-the-box HA de MySQL (\u00e0 ne pas confondre avec MySQL NDB Cluster). Ce produit est compos\u00e9 de 3 \u00e9l\u00e9ments : MySQL Group Replication Plugin de r\u00e9plication multi-ma\u00eetre, avec r\u00e9solution de conflits et basculement (failover) automatique. MySQL Router Middleware l\u00e9ger et performant qui fournit\u2026","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"MySQL InnoDB Cluster Architecture","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_InnoDB_Cluster_Architecture.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2587,"url":"https:\/\/dasini.net\/blog\/2018\/08\/30\/tutoriel-deployer-mysql-8-0-innodb-cluster\/","url_meta":{"origin":418,"position":2},"title":"Tutoriel \u2013 D\u00e9ployer MySQL 8.0 InnoDB Cluster","author":"Olivier DASINI","date":"30 ao\u00fbt 2018","format":false,"excerpt":"Cela fait maintenant plus d'un trimestre que MySQL 8.0 est GA (8.0.11; 8.0.12), il est temps que je t'en parle :) Dans la liste des besoins essentiels de mes clients se trouve la\u00a0Haute Disponibilit\u00e9 avec MySQL. On va voir, dans cet article, comment d\u00e9ployer et g\u00e9rer un cluster MySQL \"from\u2026","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"MySQL InnoDB Cluster Architecture","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_8.0_InnoDB_Cluster_Production_post.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_8.0_InnoDB_Cluster_Production_post.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_8.0_InnoDB_Cluster_Production_post.png?resize=525%2C300 1.5x"},"classes":[]},{"id":2549,"url":"https:\/\/dasini.net\/blog\/2018\/08\/21\/tutoriel-deployer-mysql-5-7-innodb-cluster\/","url_meta":{"origin":418,"position":3},"title":"Tutoriel \u2013 D\u00e9ployer MySQL 5.7 InnoDB Cluster","author":"Olivier DASINI","date":"21 ao\u00fbt 2018","format":false,"excerpt":"L'un des principaux besoins de mes clients est la\u00a0Haute Disponibilit\u00e9 avec MySQL. On va voir, dans cet article, comment d\u00e9ployer et g\u00e9rer un cluster MySQL 5.7 \"from scratch\"\u00a0, sous la forme d'un tutoriel, gr\u00e2ce \u00e0 la solution HA tout en un : MySQL 5.7 InnoDB Cluster.","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"MySQL InnoDB Cluster PoC Architecture","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_InnoDB_Cluster_Production_post2.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_InnoDB_Cluster_Production_post2.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_InnoDB_Cluster_Production_post2.png?resize=525%2C300 1.5x"},"classes":[]},{"id":1915,"url":"https:\/\/dasini.net\/blog\/2017\/05\/11\/tutoriel-deployer-mysql-innodb-cluster\/","url_meta":{"origin":418,"position":4},"title":"Tutoriel &#8211; D\u00e9ployer MySQL innoDB Cluster","author":"Olivier DASINI","date":"11 mai 2017","format":false,"excerpt":"Dans les \u00e9pisodes pr\u00e9c\u00e9dents on a vu comment d\u00e9ployer \"manuellement\" MySQL Group Replication, comprendre et tester MySQL InnoDB Cluster ainsi que comment g\u00e9rer ais\u00e9ment un cluster Group Replication d\u00e9ja d\u00e9ploy\u00e9 avec MySQL Shell. Aujourd'hui, dans la s\u00e9rie Haute Disponibilit\u00e9 avec MySQL on va voir comment d\u00e9ployer et g\u00e9rer un cluster\u2026","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"Warning","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/warning.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1855,"url":"https:\/\/dasini.net\/blog\/2017\/04\/10\/adopte-un-cluster-mysql-group-replication\/","url_meta":{"origin":418,"position":5},"title":"Adopte un&#8230; cluster MySQL Group Replication","author":"Olivier DASINI","date":"10 avril 2017","format":false,"excerpt":"Au menu d'aujourd'hui : comment passer de l'administration \"manuelle\" de votre solution HA MySQL Group Replication \u00e0 une administration plus simple, plus fun mais surtout facilement automatisable avec le pack MySQL InnoDB Cluster. En clair, on va voir comment utiliser MySQL Shell pour l'administration et l'orchestration du cluster et MySQL\u2026","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"MySQL InnoDB Cluster Overview","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_InnoDB_cluster_overview.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/comments?post=418"}],"version-history":[{"count":12,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/418\/revisions"}],"predecessor-version":[{"id":1844,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/418\/revisions\/1844"}],"wp:attachment":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/media?parent=418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/categories?post=418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/tags?post=418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}