<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>Minimalteck.fr</title>
	<link>http://minimalteck.fr/</link>
	
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>

	<image>
		<title>Minimalteck.fr</title>
		<url>http://minimalteck.fr/local/cache-vignettes/L48xH48/siteon0-e5814.png</url>
		<link>http://minimalteck.fr/</link>
		<height>48</height>
		<width>48</width>
	</image>



<item xml:lang="fr">
		<title>Mysql : nettoyage des logs binaires</title>
		<link>http://minimalteck.fr/admin/mysql-nettoyage-des-logs-binaires</link>
		<guid isPermaLink="true">http://minimalteck.fr/admin/mysql-nettoyage-des-logs-binaires</guid>
		<dc:date>2009-04-01T16:06:21Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Minimalteck</dc:creator>


		<dc:subject>Tips</dc:subject>
		<dc:subject>MySQL</dc:subject>

		<description>Les beaux jours sont l&#224; et Mysql remplis gentiment la partition qui lui est d&#233;di&#233;e avec ces beaux logs binaires&#8230; Allons faire un petit nettoyage de printemps&#8230; Un log binaire contient toutes les requ&#234;tes qui modifient les donn&#233;es et se voit utilis&#233; par le(s) esclave(s) lors d'une r&#233;plication. Dans la documentation on peut lire que l'on peut &quot;effacer tous les fichiers de log avec la commande RESET MASTER, ou seulement certains d'entre eux avec PURGE MASTER LOGS&quot;. mysql &gt; PURGE BINARY LOGS TO (...)

-
&lt;a href="http://minimalteck.fr/admin/" rel="directory"&gt;Admin&lt;/a&gt;

/ 
&lt;a href="http://minimalteck.fr/tips" rel="tag"&gt;Tips&lt;/a&gt;, 
&lt;a href="http://minimalteck.fr/mysql" rel="tag"&gt;MySQL&lt;/a&gt;

		</description>


 <content:encoded>&lt;img class='spip_logos' alt=&quot;&quot; src=&quot;http://minimalteck.fr/local/cache-vignettes/L128xH128/arton33-fe27c.png&quot; width='128' height='128' style='height:128px;width:128px;' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Les beaux jours sont l&#224; et Mysql remplis gentiment la partition qui lui est d&#233;di&#233;e avec ces beaux logs binaires&#8230;
&lt;br /&gt;Allons faire un petit nettoyage de printemps&#8230;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Un &lt;a href='http://dev.mysql.com/doc/refman/5.0/fr/binary-log.html' class='spip_out' title=&quot;cf. Le log binaire&quot; rel='external'&gt;log binaire&lt;/a&gt; contient toutes les requ&#234;tes qui modifient les donn&#233;es et se voit utilis&#233; par le(s) esclave(s) lors d'une &lt;a href='http://dev.mysql.com/doc/refman/5.0/fr/replication.html' class='spip_out' title=&quot;cf. R&#233;plication MySQL&quot; rel='external'&gt;r&#233;plication&lt;/a&gt;. &lt;br /&gt;Dans la documentation on peut lire que l'on peut &quot;&lt;i&gt;effacer tous les fichiers de log avec la commande RESET MASTER, ou seulement certains d'entre eux avec PURGE MASTER LOGS&lt;/i&gt;&quot;.&lt;/p&gt; &lt;p&gt;&lt;code class='spip_code' dir='ltr'&gt;mysql &gt; PURGE BINARY LOGS TO 'mysql-bin.0020';&lt;/code&gt;
&lt;code class='spip_code' dir='ltr'&gt;mysql &gt; PURGE BINARY LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY);&lt;/code&gt;&lt;/p&gt; &lt;p&gt;Ces commandes effacent tous les logs binaires list&#233;s dans l'index de logs, qui sont ant&#233;rieurs au log (dans l'exemple ant&#233;rieurs au log 'mysql-bin.0020') ou &#224; la date indiqu&#233; (dans l'exemple ant&#233;rieurs de 10 jours &#224; la date courante).
&lt;br /&gt;Ceux-ci sont alors supprim&#233;s de l'indexation - le log &#233;ventuel donn&#233; en param&#232;tre devient alors le premier de la liste.&lt;/p&gt; &lt;p&gt;En th&#233;orie, au prochain red&#233;marrage du serveur MySQL ou &#224; la prochaine commande &quot;FLUSH LOGS&quot;, MySQL doit faire tourner les logs, cr&#233;e un nouveau fichier de log binaires et supprimer les anciens logs binaires selon la variable syst&#232;me &quot;&lt;strong&gt; &lt;i&gt;expire_logs_days&lt;/i&gt; &lt;/strong&gt;&quot; pr&#233;sente dans le fichier de configuration &quot;&lt;i&gt;my.cnf&lt;/i&gt;&quot; [&lt;a href='#nb1' class='spip_note' rel='footnote' title='dans cette configuration, on doit avoir quelque chose comme : log_bin = (...)' id='nh1'&gt;1&lt;/a&gt;].&lt;/p&gt; &lt;p&gt;Seulement en pratique, ce n'est pas toujours le cas [&lt;a href='#nb2' class='spip_note' rel='footnote' title='Dans le cas de r&#233;plication apparemment un bug subsiste du au fait que le (...)' id='nh2'&gt;2&lt;/a&gt;].&lt;/p&gt; &lt;p&gt;Au moins une alternative se pr&#233;sente et fonctionne (pour moi en tout cas &lt;img class=&quot;no_image_filtrer&quot; alt=&quot;blush&quot; title=&quot;blush&quot; src=&quot;http://www.minimalteck.fr/plugins/couteau_suisse/img/chatons/blush.gif&quot; width=&quot;20&quot; height=&quot;20&quot;/&gt;) :&lt;/p&gt; &lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; Arr&#234;ter MySQL&lt;/li&gt;&lt;li&gt; effacer les vieux log binaires &#224; la main :
&lt;code class='spip_code' dir='ltr'&gt;find /var/log/mysql/hostname-bin.* -mtime +10 -exec rm {}\;&lt;/code&gt;&lt;/li&gt;&lt;li&gt; reconstruire l'index des binaires
&lt;code class='spip_code' dir='ltr'&gt;ls /var/lib/mysql/ &gt; mysql-bin.index&lt;/code&gt;&lt;/li&gt;&lt;li&gt; red&#233;marrer MySQL&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Et hop, &#231;a c'est fait&#8230; le mieux serait de faire un script et de croner tout &#231;a non ? Hum, demain&#8230;&lt;img class=&quot;no_image_filtrer&quot; alt=&quot;wink&quot; title=&quot;wink&quot; src=&quot;http://www.minimalteck.fr/plugins/couteau_suisse/img/chatons/wink.gif&quot; width=&quot;20&quot; height=&quot;20&quot;/&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;p&gt;&lt;span class=&quot;csfoo htmla&quot;&gt;&lt;/span&gt;[&lt;a href='#nh1' id='nb1' class='spip_note' title='Notes 1' rev='footnote'&gt;1&lt;/a&gt;] &lt;span class=&quot;csfoo htmlb&quot;&gt;&lt;/span&gt;dans cette configuration, on doit avoir quelque chose comme :&lt;/p&gt; &lt;span class=&quot;csfoo htmla&quot;&gt;&lt;/span&gt;&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;log_bin = /var/lib/mysql/hostname-bin.log&lt;br /&gt; expire_logs_days = 10&lt;br /&gt; max_binlog_size = 100M&lt;/code&gt;&lt;/div&gt;&lt;span class=&quot;csfoo htmlb&quot;&gt;&lt;/span&gt; &lt;p&gt;&lt;span class=&quot;csfoo htmla&quot;&gt;&lt;/span&gt;[&lt;a href='#nh2' id='nb2' class='spip_note' title='Notes 2' rev='footnote'&gt;2&lt;/a&gt;] &lt;span class=&quot;csfoo htmlb&quot;&gt;&lt;/span&gt;Dans le cas de r&#233;plication apparemment un bug subsiste du au fait que le fichier d'indexation du &quot;master&quot; contient encore les anciens fichiers&#8230;
&lt;br /&gt;Mais voyez plut&#244;t ces exemples de &quot;&lt;i&gt;Quand &#231;a veut pas&#8230;&lt;/i&gt;&quot; :&lt;/p&gt; &lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; &lt;a href='http://bugs.mysql.com/bug.php?id=28238' class='spip_out' rel='external'&gt;http://bugs.mysql.com/bug.php?id=28238&lt;/a&gt; ;&lt;/li&gt;&lt;li&gt; &lt;a href='http://bugs.mysql.com/bug.php?id=37027' class='spip_out' rel='external'&gt;http://bugs.mysql.com/bug.php?id=37027&lt;/a&gt; ;&lt;/li&gt;&lt;li&gt; etc.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Mysql + root + perte + mot de passe = b&#233;vue</title>
		<link>http://minimalteck.fr/admin/mysql-root-perte-mot-de-passe</link>
		<guid isPermaLink="true">http://minimalteck.fr/admin/mysql-root-perte-mot-de-passe</guid>
		<dc:date>2009-04-01T14:25:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Minimalteck</dc:creator>


		<dc:subject>Tips</dc:subject>
		<dc:subject>MySQL</dc:subject>

		<description>&quot;Un doute m'assaille&#8230; Qu'avais-je donc pu assigner comme mot de passe &#224; notre bien-aim&#233; utilisateur root MySQL sur vieux-bazard-poussi&#233;reux ?&quot; Apr&#232;s avoir test&#233; une bonne vingtaine de vos mots de passe f&#233;tiches, la r&#233;alit&#233; prend le pas sur votre optimisme habituel, vous poussant &#224; exprimer haut et fort votre total d&#233;sapointement face &#224; cette situation ubuesque : &quot;Peste soit de ce f&#226;cheux contre-temps !&quot; Heureusement, une solution toute simple s'offre &#224; vous&#8230; &#201;tape 1 : arr&#234;ter le serveur Mysql (...)

-
&lt;a href="http://minimalteck.fr/admin/" rel="directory"&gt;Admin&lt;/a&gt;

/ 
&lt;a href="http://minimalteck.fr/tips" rel="tag"&gt;Tips&lt;/a&gt;, 
&lt;a href="http://minimalteck.fr/mysql" rel="tag"&gt;MySQL&lt;/a&gt;

		</description>


 <content:encoded>&lt;img class='spip_logos' alt=&quot;&quot; src=&quot;http://minimalteck.fr/local/cache-vignettes/L150xH125/arton32-94b5c.png&quot; width='150' height='125' style='height:125px;width:150px;' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;&quot;Un doute m'assaille&#8230; Qu'avais-je donc pu assigner comme mot de passe &#224; notre bien-aim&#233; utilisateur root MySQL sur vieux-bazard-poussi&#233;reux ?&quot;
&lt;br /&gt;Apr&#232;s avoir test&#233; une bonne vingtaine de vos mots de passe f&#233;tiches&lt;span class=&quot;csfoo htmla&quot;&gt;&lt;/span&gt; [&lt;a href='#nb2-1' class='spip_note' rel='footnote' title='si la machine n'a pas &#233;t&#233; install&#233; par vos soins&#8230; le premier test &#224; effectuer (...)' id='nh2-1'&gt;1&lt;/a&gt;]&lt;span class=&quot;csfoo htmlb&quot;&gt;&lt;/span&gt;, la r&#233;alit&#233; prend le pas sur votre optimisme habituel, vous poussant &#224; exprimer haut et fort votre total d&#233;sapointement face &#224; cette situation ubuesque :
&lt;br /&gt;&quot;Peste soit de ce f&#226;cheux contre-temps !&quot;&lt;/p&gt; &lt;p&gt;Heureusement, une solution toute simple s'offre &#224; vous&#8230;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;img src=&quot;http://minimalteck.fr/local/cache-vignettes/L8xH11/puce-32883.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;strong&gt;&#201;tape 1 [&lt;a href='#nb2-2' class='spip_note' rel='footnote' title='&#201;tape avant l'&#233;tape 1 : V&#233;rifiez dans le r&#233;pertoire du super-utilisateur s'il (...)' id='nh2-2'&gt;2&lt;/a&gt;] : arr&#234;ter le serveur Mysql&lt;/strong&gt; &lt;code class='spip_code' dir='ltr'&gt;/etc/init.d/mysql stop&lt;/code&gt;&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://minimalteck.fr/local/cache-vignettes/L8xH11/puce-32883.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;strong&gt;&#201;tape 2 : red&#233;marrer le serveur Mysql&lt;/strong&gt;
&lt;br /&gt;Oui ! mais pas n'importe comment &lt;img class=&quot;no_image_filtrer&quot; alt=&quot;wink&quot; title=&quot;wink&quot; src=&quot;http://www.minimalteck.fr/plugins/couteau_suisse/img/chatons/wink.gif&quot; width=&quot;20&quot; height=&quot;20&quot;/&gt;
&lt;code class='spip_code' dir='ltr'&gt;mysqld --skip-grant-tables --skip-networking &amp;&lt;/code&gt;
Ces options forcent le serveur &#224; ne pas utiliser le syst&#232;me de privil&#232;ge du tout&#8230; mais &#224; ne pas accepter de connexions TCP/IP du tout non plus !&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://minimalteck.fr/local/cache-vignettes/L8xH11/puce-32883.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;strong&gt;&#201;tape 3 : on change tout&lt;/strong&gt;
&lt;br /&gt;Ensuite on se connecte au serveur et on s&#233;lectionne la base mysql :
&lt;code class='spip_code' dir='ltr'&gt;$ mysql -u root mysql&lt;/code&gt;
On change le mot de passe root&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;mysql&gt; UPDATE user SET Password=PASSWORD('newpassroot') WHERE User='root';&lt;/code&gt;&lt;/div&gt; &lt;p&gt;On recharge les privil&#232;ges puis on quitte&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;mysql&gt; FLUSH PRIVILEGES;&lt;br /&gt; mysql&gt;exit&lt;/code&gt;&lt;/div&gt; &lt;p&gt;&lt;img src=&quot;http://minimalteck.fr/local/cache-vignettes/L8xH11/puce-32883.gif&quot; width='8' height='11' class='puce' alt=&quot;-&quot; style='height:11px;width:8px;' /&gt; &lt;strong&gt;&#201;tape 3bis ou 4, au choix&lt;/strong&gt;
&lt;br /&gt;On red&#233;marre Mysql
&lt;code class='spip_code' dir='ltr'&gt;/etc/init.d/mysql restart&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;p&gt;&lt;span class=&quot;csfoo htmla&quot;&gt;&lt;/span&gt;[&lt;a href='#nh2-1' id='nb2-1' class='spip_note' title='Notes 2-1' rev='footnote'&gt;1&lt;/a&gt;] &lt;span class=&quot;csfoo htmlb&quot;&gt;&lt;/span&gt;si la machine n'a pas &#233;t&#233; install&#233; par vos soins&#8230; le premier test &#224; effectuer est l'abscence abh&#233;rente mais possible du mot de passe root, &lt;br /&gt;Ne riez pas, cela m'est arriv&#233; pas plus tard qu'hier sur la machine d'un client &lt;img class=&quot;no_image_filtrer&quot; alt=&quot;blink&quot; title=&quot;blink&quot; src=&quot;http://www.minimalteck.fr/plugins/couteau_suisse/img/chatons/blink.gif&quot; width=&quot;20&quot; height=&quot;20&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;csfoo htmla&quot;&gt;&lt;/span&gt;[&lt;a href='#nh2-2' id='nb2-2' class='spip_note' title='Notes 2-2' rev='footnote'&gt;2&lt;/a&gt;] &lt;span class=&quot;csfoo htmlb&quot;&gt;&lt;/span&gt;&#201;tape avant l'&#233;tape 1 :
V&#233;rifiez dans le r&#233;pertoire du super-utilisateur s'il n'y a pas un fichier d'options utilisateur qui tra&#238;ne&#8230;
&lt;span class=&quot;csfoo htmla&quot;&gt;&lt;/span&gt;&lt;code class='spip_code' dir='ltr'&gt;ls -a /root | grep '.my.cnf'&lt;/code&gt;&lt;span class=&quot;csfoo htmlb&quot;&gt;&lt;/span&gt;
ou encore sortez le canon tue-mouches pour faire croire que votre t&#226;che est difficile
&lt;span class=&quot;csfoo htmla&quot;&gt;&lt;/span&gt;&lt;code class='spip_code' dir='ltr'&gt;test -e '/root/.my.cnf' &amp;&amp; more /root/.my.cnf || echo 'Le syst&#232;me se voit au regret de vous informer que le fichier demand&#233; est inexistant !'&lt;/code&gt;&lt;span class=&quot;csfoo htmlb&quot;&gt;&lt;/span&gt;
&lt;br /&gt;En effet, ce &lt;a href='http://dev.mysql.com/doc/refman/5.0/fr/option-files.html' class='spip_out' rel='external'&gt;type de fichier&lt;/a&gt; peut stocker les param&#232;tres de connexions sous la forme&lt;/p&gt; &lt;span class=&quot;csfoo htmla&quot;&gt;&lt;/span&gt;&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt; &lt;br /&gt; [client]&lt;br /&gt; host=localhost&lt;br /&gt; user=root&lt;br /&gt; password=mot_de_passe_root&lt;/code&gt;&lt;/div&gt;&lt;span class=&quot;csfoo htmlb&quot;&gt;&lt;/span&gt; &lt;p&gt;&quot;Ah, c'est pour &#231;a que j'arrive pas &#224; me connceter moi&#8230; j'en n'ai pas&quot;&#8230;&quot;
&lt;br /&gt;&quot;Euh, non toi c'est &#224; cause de tes mouffles&quot;&#8230;&lt;img class=&quot;no_image_filtrer&quot; alt=&quot;closedeyes&quot; title=&quot;closedeyes&quot; src=&quot;http://www.minimalteck.fr/plugins/couteau_suisse/img/chatons/closedeyes.gif&quot; width=&quot;20&quot; height=&quot;20&quot;/&gt;
&lt;br /&gt;&quot;des mouffles ??? ben, j'en ai pas non plus&#8230;&quot;&lt;img class=&quot;no_image_filtrer&quot; alt=&quot;confused1&quot; title=&quot;confused1&quot; src=&quot;http://www.minimalteck.fr/plugins/couteau_suisse/img/chatons/confused1.gif&quot; width=&quot;18&quot; height=&quot;25&quot;/&gt;&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Si cette recette n'a pas march&#233; chez vous&#8230; essayez sans vos mouffles&lt;img class=&quot;no_image_filtrer&quot; alt=&quot;wink&quot; title=&quot;wink&quot; src=&quot;http://www.minimalteck.fr/plugins/couteau_suisse/img/chatons/wink.gif&quot; width=&quot;20&quot; height=&quot;20&quot;/&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>



</channel>

</rss>
