<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des Mysql - Xavki</title>
	<atom:link href="https://xavki.blog/category/mysql/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Open your Sources..</description>
	<lastBuildDate>Fri, 14 Dec 2018 12:51:07 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>[MySql] : sauvegarder les bases une à une individuellement</title>
		<link>https://xavki.blog/mysql-sauvegarder-les-bases-une-a-une/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Fri, 14 Dec 2018 12:51:07 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<guid isPermaLink="false">https://xavki.wordpress.com/?p=287</guid>

					<description><![CDATA[<p><img width="1880" height="1253" src="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" fetchpriority="high" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994.jpeg 1880w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994-300x200.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994-768x512.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994-1024x682.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994-1568x1045.jpeg 1568w" sizes="(max-width: 1880px) 100vw, 1880px" />Sauvegarder ses bases de données est essentiel en cas de crash mais aussi pour être en mesure de fournir à tout moment un dump. N&#8217;oubliez pas que vous pouvez retrouver les autres articles databases sur cette page. Par contre il... <a href="https://xavki.blog/mysql-sauvegarder-les-bases-une-a-une/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/mysql-sauvegarder-les-bases-une-a-une/">[MySql] : sauvegarder les bases une à une individuellement</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="1880" height="1253" src="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994.jpeg 1880w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994-300x200.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994-768x512.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994-1024x682.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-220994-1568x1045.jpeg 1568w" sizes="(max-width: 1880px) 100vw, 1880px" /><p>Sauvegarder ses bases de données est essentiel en cas de crash mais aussi pour être en mesure de fournir à tout moment un dump. N&#8217;oubliez pas que vous pouvez <a href="https://xavki.blog/databases/">retrouver les autres articles databases sur cette page</a>.</p>
<p>Par contre il existe de nombreuses manière de faire. Mysql fait cela très bien et très facilement. Mais parfois on a des besoins particuliers.</p>
<p>Par exemple, comme les restaurations portent souvent sur une seule base, on ne souhaite pas disposer d&#8217;un dump complet. D&#8217;ailleurs cela peut aussi éviter de se trimbaler des fichiers trop gros ou encore de gérer la confidentialité de données entre clients.</p>
<p>Comment sauvegarder les bases mysql une à une c&#8217;est à dire en ayant un fichier par base ?</p>
<p>C&#8217;est assez simple avec une petite boucle :</p>
<pre>for db in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $db | gzip &gt; "/backups/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d-%H.%M.%S).gz"; done
</pre>
<p>Donc :</p>
<ul>
<li>on dresse la liste des bases avec un show databases</li>
<li>on parcourt tout cela avec un for</li>
<li>pour chaque base on lance un mysqldump</li>
<li>puis on gzippe chaque fichier généré</li>
</ul>
<p>L’article <a href="https://xavki.blog/mysql-sauvegarder-les-bases-une-a-une/">[MySql] : sauvegarder les bases une à une individuellement</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[Mysql] : comment générer le sql pour recréer un table ?</title>
		<link>https://xavki.blog/mysql-comment-generer-le-sql-pour-recreer-un-table/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Fri, 07 Dec 2018 08:29:38 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<guid isPermaLink="false">http://xavki.blog/?p=643</guid>

					<description><![CDATA[<p><img width="2048" height="1536" src="https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table.jpeg 2048w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-300x225.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-768x576.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-1024x768.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-1568x1176.jpeg 1568w" sizes="(max-width: 2048px) 100vw, 2048px" />C&#8217;est un article similaire à celui que j&#8217;ai déjà pu faire pour oracle mais vous allez vous rendre compte qu&#8217;avec mysql c&#8217;est plus simple. Eh oui pas de dbms et autres trucs tordus de ce genre un simple &#8220;show&#8221; suffit.... <a href="https://xavki.blog/mysql-comment-generer-le-sql-pour-recreer-un-table/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/mysql-comment-generer-le-sql-pour-recreer-un-table/">[Mysql] : comment générer le sql pour recréer un table ?</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="2048" height="1536" src="https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table.jpeg 2048w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-300x225.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-768x576.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-1024x768.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-1568x1176.jpeg 1568w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /><p>C&#8217;est un article similaire à celui que j&#8217;ai déjà pu faire pour oracle mais vous allez vous rendre compte qu&#8217;avec mysql c&#8217;est plus simple. Eh oui pas de dbms et autres trucs tordus de ce genre un simple &#8220;show&#8221; suffit.</p>
<p>Ah oui, j&#8217;allais oublier qu&#8217;avant de faire  ce genre de manip par un &#8220;show&#8221; je passais par des manips sur les dumps&#8230; autant dire que ce n&#8217;était pas léger et que cela a des limites très vite atteintes.</p>
<p>Alors comment récupérer le sql d&#8217;une table avec la commande &#8220;show&#8221; ? Facile</p>
<pre>mysql&gt; show create table matable;
+---------+-------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+-------------------------------------------------------------------------------------------------------------------------------------+
| matable | CREATE TABLE `matable` (
`id` int(11) DEFAULT NULL,
`monchamp` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+---------+-------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0,00 sec)
</pre>
<p>C&#8217;est facile donc et très efficace. Et vous comment pratiquez vous mysql et quelle version ?</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-644" src="http://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table.jpeg" alt="mysql-recreate-table" width="2048" height="1536" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table.jpeg 2048w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-300x225.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-768x576.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-1024x768.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/08/mysql-recreate-table-1568x1176.jpeg 1568w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></p>
<p>L’article <a href="https://xavki.blog/mysql-comment-generer-le-sql-pour-recreer-un-table/">[Mysql] : comment générer le sql pour recréer un table ?</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[Mysql] : comment merger deux tables en une ?</title>
		<link>https://xavki.blog/mysql-comment-merger-deux-tables-en-une/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Wed, 05 Dec 2018 21:01:55 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<guid isPermaLink="false">http://xavki.blog/?p=646</guid>

					<description><![CDATA[<p><img width="2048" height="1536" src="https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge.jpeg 2048w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-300x225.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-768x576.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-1024x768.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-1568x1176.jpeg 1568w" sizes="auto, (max-width: 2048px) 100vw, 2048px" />Merger des tables sur mysql c&#8217;est possible. En effet, vous pouvez faire des associations de table assez facilement. Personnellement je ne suis pas un fan de cette solution nous allons voir pourquoi un peu plus loin. Commençons par créer deux... <a href="https://xavki.blog/mysql-comment-merger-deux-tables-en-une/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/mysql-comment-merger-deux-tables-en-une/">[Mysql] : comment merger deux tables en une ?</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="2048" height="1536" src="https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge.jpeg 2048w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-300x225.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-768x576.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-1024x768.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-1568x1176.jpeg 1568w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /><p>Merger des tables sur mysql c&#8217;est possible. En effet, vous pouvez faire des associations de table assez facilement. Personnellement je ne suis pas un fan de cette solution nous allons voir pourquoi un peu plus loin. Commençons par créer deux tables similaires au niveau de la structure :</p>
<pre>mysql&gt; create table tab3 (f1 varchar(255)) ENGINE=MyISAM;
Query OK, 0 rows affected (0,08 sec)

mysql&gt; create table tab4 (f2 varchar(255)) ENGINE=MyISAM;
Query OK, 0 rows affected (0,08 sec)</pre>
<p>Puis insérons des données dans ces tables :</p>
<pre>mysql&gt; insert into tab4 values ('table 2');
Query OK, 1 row affected (0,00 sec)

mysql&gt; insert into tab4 values ('table 2');
Query OK, 1 row affected (0,00 sec)</pre>
<p>Maintenant créons la table de merge :</p>
<pre>mysql&gt; create table fusion (f1 varchar(255)) ENGINE=MERGE UNION=(tab3,tab4) INSERT_METHOD=LAST;
Query OK, 0 rows affected (0,07 sec)</pre>
<p>Et voici maintenant son contenu :</p>
<pre>mysql&gt; select * from fusion;
+---------+
| f1 |
+---------+
| table 1 |
| table 1 |
| table 2 |
| table 2 |
+---------+
4 rows in set (0,01 sec)</pre>
<p>Mais supprimons une des tables composant la table de merge et procédons à un nouveau SELECT :</p>
<p>mysql&gt; drop table tab3;<br />
Query OK, 0 rows affected (0,00 sec)</p>
<pre>mysql&gt; select * from fusion;
ERROR 1168 (HY000): Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist</pre>
<p>Et voilà mysql nous jette car nous venons de casser un des éléments constitutif de la table de merge. Pas terrible. Vous comprenez donc pourquoi il vaut mieux éviter de créer des tables de merge.</p>
<p>Et vous utilisez vous des tables de ce type ? avez vous rencontré des problèmes avec ?</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-647" src="http://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge.jpeg" alt="mysql_table_merge" width="2048" height="1536" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge.jpeg 2048w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-300x225.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-768x576.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-1024x768.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/08/mysql_table_merge-1568x1176.jpeg 1568w" sizes="auto, (max-width: 2048px) 100vw, 2048px" /></p>
<p>L’article <a href="https://xavki.blog/mysql-comment-merger-deux-tables-en-une/">[Mysql] : comment merger deux tables en une ?</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[Mysql] : comment déconnecter un utilisateur ? (de force)</title>
		<link>https://xavki.blog/mysql-comment-deconnecter-un-utilisateur-de-force/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Mon, 03 Dec 2018 19:49:13 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<guid isPermaLink="false">http://xavki.blog/?p=640</guid>

					<description><![CDATA[<p><img width="1280" height="662" src="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png 1280w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-300x155.png 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-768x397.png 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-1024x530.png 1024w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />Mysql est un moteur de bdd performant et sympathique à l&#8217;utilisation, un peu à l&#8217;image de postgres. Si vous utilisez un WAMP ou LAMP pour faire vos développements, vous utilisez donc Mysql. C&#8217;est d&#8217;ailleurs certainement ce qui a permis la... <a href="https://xavki.blog/mysql-comment-deconnecter-un-utilisateur-de-force/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/mysql-comment-deconnecter-un-utilisateur-de-force/">[Mysql] : comment déconnecter un utilisateur ? (de force)</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="1280" height="662" src="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png 1280w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-300x155.png 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-768x397.png 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-1024x530.png 1024w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><p>Mysql est un moteur de bdd performant et sympathique à l&#8217;utilisation, un peu à l&#8217;image de postgres. Si vous utilisez un WAMP ou LAMP pour faire vos développements, vous utilisez donc Mysql. C&#8217;est d&#8217;ailleurs certainement ce qui a permis la très forte progression de ce moteur ces dernières années.</p>
<p>Retrouvez d&#8217;autres articles <a href="https://xavki.blog/databases/">sur la page databases</a>.</p>
<p>Un DBA lorsqu&#8217;il doit intervenir sur une base ou un moteur, doit parfois être le seul connecter à la base ou à la machine. Mais certaines applications ne rendent pas la main très facilement. C&#8217;est souvent moins le cas des utilisateurs humains mais cela peut aussi être le cas d&#8217;une personne réticente ou encore mieux le DBA a besoin d&#8217;y aller comme un gros bourin et décide de reprendre la main de force.</p>
<p>Bref c&#8217;est dans ces derniers cas que l&#8217;on peut s&#8217;intéresser à vouloir déconnecter un user par la force (en lui coupant son processus).</p>
<p>Comment fait-on ?</p>
<p>La première chose à faire c&#8217;est de lister les processus en cours et les users et bases correspondants.</p>
<p>Voici la commande :</p>
<pre>mysql&gt; show processlist;</pre>
<p>le résultat prend la forme suivante :</p>
<pre> +-----+------+-----------+---------+---------+-------+-------+------------------+
    | Id  | User | Host      | db      | Command | Time  | State | Info             |
    +-----+------+-----------+---------+---------+-------+-------+------------------+
    | 235 | appli1 | 192.20.1.2 | mydb | Query   | 28619 |       | NULL             |
    | 238 | owner | localhost | mydb | Query   |   853 |       | NULL             |
    | 241 | owner | localhost | NULL    | Query   |     0 | NULL  | show processlist |
    +-----+------+-----------+---------+---------+-------+-------+------------------+
    3 rows in set (0.00 sec)
</pre>
<p>Dans notre cas nous voulons déconnecter appli1. Pour cela il suffit de repérer l&#8217;Id de la session (soit 235). Puis lancer :</p>
<pre>mysql&gt; kill 235
</pre>
<p>Et voilà le user appli1 est déconnecté.</p>
<p>N&#8217;hésitez pas en commentaire à partager vos pratiques sur mysql.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-509" src="http://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png" alt="MySQL.svg" width="1280" height="662" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png 1280w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-300x155.png 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-768x397.png 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-1024x530.png 1024w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p>L’article <a href="https://xavki.blog/mysql-comment-deconnecter-un-utilisateur-de-force/">[Mysql] : comment déconnecter un utilisateur ? (de force)</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[SQL] : créez des constantes et des noms de résultats</title>
		<link>https://xavki.blog/sql-creez-des-constantes-et-des-noms-de-resultats/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Wed, 31 Oct 2018 14:17:02 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Postgresql]]></category>
		<guid isPermaLink="false">http://xavki.blog/?p=562</guid>

					<description><![CDATA[<p><img width="508" height="138" src="https://xavki.blog/wp-content/uploads/2018/08/alias-query.png" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/alias-query.png 508w, https://xavki.blog/wp-content/uploads/2018/08/alias-query-300x81.png 300w" sizes="auto, (max-width: 508px) 100vw, 508px" />DBA et développeur, cet article est pour vous&#8230; y&#8217;en faut pour tous les goûts comme on dit. Voici deux outils peu utilisés dans les bases de données que j&#8217;ai pu voir récemment. Et pourtant, ils permettent de simplifier votre script... <a href="https://xavki.blog/sql-creez-des-constantes-et-des-noms-de-resultats/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/sql-creez-des-constantes-et-des-noms-de-resultats/">[SQL] : créez des constantes et des noms de résultats</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="508" height="138" src="https://xavki.blog/wp-content/uploads/2018/08/alias-query.png" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/alias-query.png 508w, https://xavki.blog/wp-content/uploads/2018/08/alias-query-300x81.png 300w" sizes="auto, (max-width: 508px) 100vw, 508px" /><p>DBA et développeur, cet article est pour vous&#8230; y&#8217;en faut pour tous les goûts comme on dit. Voici deux outils peu utilisés dans les bases de données que j&#8217;ai pu voir récemment. Et pourtant, ils permettent de simplifier votre script sql et de le rendre plus lisible et plus structuré (génial lol).</p>
<h2>Les constantes en SQL</h2>
<p>Ce n&#8217;est pas révolutionnaire mais si vous ne le savez pa déjà, vous pouvez définir un groupe de constante en sql avec la clause &#8220;WITH &#8230; AS&#8221;. Cela vous permettra d&#8217;utiliser ces données fixes comme des tables pratiquement.</p>
<p>Par exemple si on définit les constantes de temps :</p>
<pre>WITH timeconstants AS (
SELECT 60 as seconds,
       60 as minutes,
       24 as hours,
       365 as days,
       7 as week,
       ['Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi','Dimanche'] as daysweek,
),</pre>
<p>C&#8217;est pas mal mais comment utiliser ces constantes ? comme une requête.</p>
<pre>SELECT seconds, minutes, hours, days FROM timeconstants;</pre>
<p>Enfantin comme dirait l&#8217;autre.</p>
<h2>Les noms de résultats</h2>
<p>Je parlerai plutôt d&#8217;alias mais souvent en sql on parle d&#8217;alias pour les alias de table par exemple et on l&#8217;utilise plutôt dans la clause FROM. En totu cas le principe est presque el même sauf qu&#8217;il s&#8217;agit à la manière d&#8217;un vue d&#8217;attribuer un alias à une requête entière.</p>
<p>On le fait ainsi :</p>
<pre>myextract AS (
   SELECT
   IF(colonne1 &lt; 10, "little", "big") AS qualified_sale,
   colonne1,   nb_hours,   colonne2 / 10  FROM mytable)</pre>
<p>Et si on combine les deux on retrouve des trucs du genre :</p>
<pre>SELECT nb_hours * minutes * secondes AS timer
FROM mytable, timeconstants;</pre>
<p>Alors je fais un peu n&#8217;importe quoi mais c&#8217;est un exemple.Ici on utilise les constantes minutes et secondes pour calculer les heures passées en secondes.</p>
<p>L&#8217;intérêt vous le voyez c&#8217;est que désormais tout possède un nom et que pour appeler les éléments ils doivent être définis à travers le &#8220;FROM&#8221;. Derrière il est beaucoup plus simple de faire de la modélisation et surtout si vos constantes évoluent vous n&#8217;avez pas besoin de revoir toutes vos requêtes.</p>
<p>&nbsp;</p>
<p>Pour ces éléments SQL que nous venons de voir, on parle de CTE dans le jargon DBA. CTE pour <a href="https://sqlpro.developpez.com/cours/sqlserver/cte-recursives/">Common Table Expression</a>. Ces petites clauses permettent de jouer sur les &#8220;alias&#8221; pour créer des pseudos tables qui ne sont pas non plus des vues et qui visent à simplifier le travail de maintenance.</p>
<p>L’article <a href="https://xavki.blog/sql-creez-des-constantes-et-des-noms-de-resultats/">[SQL] : créez des constantes et des noms de résultats</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[Python] : comment requêter une base mysql avec mysql.connector ?</title>
		<link>https://xavki.blog/python-comment-requeter-une-base-mysql-avec-mysql-connector/</link>
					<comments>https://xavki.blog/python-comment-requeter-une-base-mysql-avec-mysql-connector/#comments</comments>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Fri, 19 Oct 2018 08:56:28 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://xavki.wordpress.com/?p=419</guid>

					<description><![CDATA[<p><img width="1280" height="662" src="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png 1280w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-300x155.png 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-768x397.png 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-1024x530.png 1024w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />Mysql Connector est le module le plus répandu pour utiliser une base de données mysql à partir de python. Il est relativement facile à utiliser. Nous aurons l&#8217;occasion de voir dans d&#8217;autres articles des manipulations plus complexes mais il faut... <a href="https://xavki.blog/python-comment-requeter-une-base-mysql-avec-mysql-connector/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/python-comment-requeter-une-base-mysql-avec-mysql-connector/">[Python] : comment requêter une base mysql avec mysql.connector ?</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="1280" height="662" src="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png 1280w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-300x155.png 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-768x397.png 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-1024x530.png 1024w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><p>Mysql Connector est le module le plus répandu pour utiliser une base de données mysql à partir de python. Il est relativement facile à utiliser. Nous aurons l&#8217;occasion de voir dans d&#8217;autres articles des manipulations plus complexes mais il faut bien commencer par&#8230; le commencement.</p>
<p>Comment réaliser un simple SELECT et afficher son résultat en Python ? voici comment faire si vous êtes débutant.</p>
<pre>import mysql.connector  madatabase = mysql.connector.connect(   host="localhost",   user="nom_utilisateur",   passwd="mon_password",   database="mabase" )  session = madatabase.cursor() sql = "SELECT * FROM matable;" session.execute(sql)  resultat = session.fetchall()  for x in resultat:   print(x)  session.close() </pre>
<p>Donc quelles commandes avons nous passé ?</p>
<ul>
<li>import du module</li>
<li>création d&#8217;une instance madatabase avec les paramètres de connexion. C&#8217;est tout à fait classique on retrouve cela avec de nombreux modules de moteurs de bases de données</li>
<li>ouverture d&#8217;une connexionavec l&#8217;instanciation de la classe cursor</li>
<li>la variable sql contient la requête à passer</li>
<li>on lance la requête avec notre variable</li>
<li>on récupère tous les résultats (sous forme de liste)</li>
<li>il ne reste plus qu&#8217;à parcourir la liste</li>
<li>et on oublie pas de dire au revoir et merci au serveur en fermant la session</li>
</ul>
<p>Vous pouvez d&#8217;ores et déjà retrouver plus d&#8217;infos en ligne sur le site mysql et <a href="https://dev.mysql.com/doc/connector-python/en/">sa rubrique dédiée à ce module Python</a>.</p>
<p>L’article <a href="https://xavki.blog/python-comment-requeter-une-base-mysql-avec-mysql-connector/">[Python] : comment requêter une base mysql avec mysql.connector ?</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://xavki.blog/python-comment-requeter-une-base-mysql-avec-mysql-connector/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>[Mysql] :Comment diagnostiquer et optimiser votre base et moteur ? avec mysqltuner</title>
		<link>https://xavki.blog/mysql-diagnostiquer-optimiser-base-et-moteur-mysqltuner/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Thu, 20 Sep 2018 07:06:53 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<guid isPermaLink="false">http://xavki.blog/?p=506</guid>

					<description><![CDATA[<p><img width="1280" height="662" src="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png 1280w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-300x155.png 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-768x397.png 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-1024x530.png 1024w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />Mysql est une base que l&#8217;on trouve souvent derrière de nombreux outils web (par exemple wordpress&#8230;). Elle s&#8217;est généralisée avec la montée en puissance de WAMP ou LAMP. Mais souvent les moteurs et les bases installés sont installés avec des... <a href="https://xavki.blog/mysql-diagnostiquer-optimiser-base-et-moteur-mysqltuner/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/mysql-diagnostiquer-optimiser-base-et-moteur-mysqltuner/">[Mysql] :Comment diagnostiquer et optimiser votre base et moteur ? avec mysqltuner</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="1280" height="662" src="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png 1280w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-300x155.png 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-768x397.png 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-1024x530.png 1024w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><p>Mysql est une base que l&#8217;on trouve souvent derrière de nombreux outils web (par exemple wordpress&#8230;). Elle s&#8217;est généralisée avec la montée en puissance de WAMP ou LAMP. Mais souvent les moteurs et les bases installés sont installés avec des valeurs par défaut sans optimisation. C&#8217;est pourquoi, de temps en temps, il est nécessaire de faire des optimisations (défragmentation de base&#8230;).</p>
<p>Dans ce genre de travail d&#8217;optimisation de bases, on cherche des outils qui permettront de faire une partie du travail à notre place. Et c&#8217;est là que vous trouverez votre bonheur avec le binaire intitulé <a href="https://github.com/major/MySQLTuner-perl/blob/master/README.fr.md">mysqltuner</a>.</p>
<p>Il est facile à installer et comme vous le verez ci-dessous son rapport est plutôt bien fichu. tout cela en perl donc on aime bien.</p>
<p>Pour l&#8217;installer rien de plus simple :</p>
<pre>sudo apt-get install mysqltuner</pre>
<p>Et après on le lance simplement :</p>
<pre>└─ $ ▶ mysqltuner

 &gt;&gt;  MySQLTuner 1.3.0 - Major Hayden &lt;major@mhtx.net&gt;
 &gt;&gt;  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 &gt;&gt;  Run with '--help' for additional options and output filtering
Please enter your MySQL administrative login: ------
Please enter your MySQL administrative password: 
[OK] Currently running supported MySQL version 5.5.60-0+deb8u1
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +ARCHIVE +BLACKHOLE +CSV -FEDERATED +InnoDB +MRG_MYISAM 
[--] Data in MyISAM tables: 714M (Tables: 400)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[--] Data in MEMORY tables: 496K (Tables: 4)
[--] Data in InnoDB tables: 55M (Tables: 14)
[!!] Total fragmented tables: 28

-------- Security Recommendations  -------------------------------------------
[!!] User 'rundeck@%' has no password set.

-------- Performance Metrics -------------------------------------------------
[--] Up for: 18d 0h 10m 24s (136M q [87.417 qps], 261K conn, TX: 113B, RX: 23B)
[--] Reads / Writes: 80% / 20%
[--] Total buffers: 192.0M global + 2.7M per thread (151 max threads)
[OK] Maximum possible memory usage: 597.8M (15% of installed RAM)
[OK] Slow queries: 0% (81/136M)
[OK] Highest usage of available connections: 19% (29/151)
[OK] Key buffer size / total MyISAM indexes: 16.0M/266.3M
[OK] Key buffer hit rate: 99.5% (362M cached / 1M reads)
[OK] Query cache efficiency: 94.4% (123M cached / 131M selects)
[!!] Query cache prunes per day: 258354
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 508K sorts)
[!!] Temporary tables created on disk: 35% (1M on disk / 3M total)
[OK] Thread cache hit rate: 99% (1K created / 261K connections)
[!!] Table cache hit rate: 0% (400 open / 393K opened)
[OK] Open file limit used: 73% (756/1K)
[OK] Table locks acquired immediately: 99% (9M immediate / 9M locks)
[OK] InnoDB buffer pool / data size: 128.0M/55.5M
[OK] InnoDB log waits: 0
-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Enable the slow query log to troubleshoot bad queries
    When making adjustments, make tmp_table_size/max_heap_table_size equal
    Reduce your SELECT DISTINCT queries without LIMIT clauses
    Increase table_open_cache gradually to avoid file descriptor limits
    Read this before increasing table_open_cache over 64: http://bit.ly/1mi7c4C
Variables to adjust:
    query_cache_size (&gt; 16M)
    tmp_table_size (&gt; 16M)
    max_heap_table_size (&gt; 16M)
    table_open_cache (&gt; 400)
</pre>
<p>Vous avez donc une liste de recommandations qui vous permettront d&#8217;atteindre votre but pour optimiser votre moteur et votre base :</p>
<ul>
<li>faire un OPTIMIZE TABLE</li>
<li>activé le slow query</li>
<li>ajuster des variables de configuration  : tmp_table_size&#8230;</li>
<li>réduire les volume de &#8220;SELECT DISTINCT&#8221; en utilisant la clause &#8220;LIMIT&#8221;</li>
<li>&#8230;</li>
</ul>
<p>Les choses sont donc relativement bien formulées. Je pense que nous aurons l&#8217;occasion de revenir en détail sur certaines de ces actions et de leurs effets.</p>
<p>De votre côté utilisez vous ce genre d&#8217;outils ?</p>
<p>L’article <a href="https://xavki.blog/mysql-diagnostiquer-optimiser-base-et-moteur-mysqltuner/">[Mysql] :Comment diagnostiquer et optimiser votre base et moteur ? avec mysqltuner</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[Php] : mysql passage à mysqli avec php7</title>
		<link>https://xavki.blog/php-mysql-passage-a-mysqli-avec-php7/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Thu, 13 Sep 2018 09:17:07 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<guid isPermaLink="false">http://xavki.blog/?p=681</guid>

					<description><![CDATA[<p><img width="1280" height="662" src="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png 1280w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-300x155.png 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-768x397.png 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-1024x530.png 1024w" sizes="auto, (max-width: 1280px) 100vw, 1280px" />La petite surprise du passage en Debian Stretch. Bien sûr que vous passez à php7 mais celui-ci ne propose plus la librairie mysql qui devient (en gros) mysqli. Du coup, il faut se replonger dans les vieux trucs qui tournaient... <a href="https://xavki.blog/php-mysql-passage-a-mysqli-avec-php7/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/php-mysql-passage-a-mysqli-avec-php7/">[Php] : mysql passage à mysqli avec php7</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="1280" height="662" src="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/08/mysql-svg.png 1280w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-300x155.png 300w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-768x397.png 768w, https://xavki.blog/wp-content/uploads/2018/08/mysql-svg-1024x530.png 1024w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><p>La petite surprise du passage en Debian Stretch. Bien sûr que vous passez à php7 mais celui-ci ne propose plus la librairie mysql qui devient (en gros) mysqli. Du coup, il faut se replonger dans les vieux trucs qui tournaient depuis plusieurs années et c&#8217;est pas plaisant. C&#8217;est même moche parfois.</p>
<p>Alors pour ceux qui sont un peu fou dans leur tête, vous pouvez faire cohabiter plusieurs versions de php mais <a href="https://pehapkari.cz/blog/2017/03/27/multiple-php-versions-the-easy-way/">je vous laisse regarder cet article c&#8217;est pas fun</a>. Mais bon c&#8217;est surtout pas une bonne idée il faut monter en version php7 c&#8217;est ainsi.</p>
<p>Alors il faut retrousser ses manches et se mettre à convertir. Mysqli est procédurale contrairement à mysql. Donc cela peut impacter un peu plus votre code. Dans les faits c&#8217;est pas la mer à boire si vous voulez vous le faire en odschool.</p>
<p>Si vous deviez en retenir une chose c&#8217;est que désormais les fonction intègre systématiquement une variable supplémentaire la connexion. Auparavant vous faisiez la connexion au début de votre page et ensuite vous n&#8217;aviez plus à en parler mysql_query($sql). Désormais il faut rappeler la variable de la cconnexion : mysqli_query($connexion,$sql).</p>
<p>Pour la connexion cela reste simple :</p>
<pre>mysqli_connect($server, $user, $password, $db);</pre>
<p>Dnas mon cas <a href="https://datatables.net/">pour les datatables de Alan Jardine</a> :</p>
<pre>$connexion = mysqli_connect($gaSql['server'],$gaSql['user'],$gaSql['password'],$gaSql['db']);</pre>
<p>&nbsp;</p>
<p>L’article <a href="https://xavki.blog/php-mysql-passage-a-mysqli-avec-php7/">[Php] : mysql passage à mysqli avec php7</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[Mysql] [Mariadb] : réinitialiser le mot de passe root (faut pas le dire)</title>
		<link>https://xavki.blog/mysql-mariadb-reinitialiser-le-mot-de-passe-root-faut-pas-le-dire/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Wed, 01 Aug 2018 08:56:44 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<guid isPermaLink="false">https://xavki.wordpress.com/?p=218</guid>

					<description><![CDATA[<p><img width="867" height="1300" src="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349.jpeg 867w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349-200x300.jpeg 200w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349-768x1152.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349-683x1024.jpeg 683w" sizes="auto, (max-width: 867px) 100vw, 867px" />Les DBA ne sont pas des personnes parfaites, au même titre que d&#8217;autres. Cela arrive de perdre un mot de passe et même si le mot de passe est celui du user root. Bon c&#8217;est quand même bien embêtant je... <a href="https://xavki.blog/mysql-mariadb-reinitialiser-le-mot-de-passe-root-faut-pas-le-dire/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/mysql-mariadb-reinitialiser-le-mot-de-passe-root-faut-pas-le-dire/">[Mysql] [Mariadb] : réinitialiser le mot de passe root (faut pas le dire)</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="867" height="1300" src="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349.jpeg 867w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349-200x300.jpeg 200w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349-768x1152.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349-683x1024.jpeg 683w" sizes="auto, (max-width: 867px) 100vw, 867px" /><p>Les DBA ne sont pas des personnes parfaites, au même titre que d&#8217;autres. Cela arrive de perdre un mot de passe et même si le mot de passe est celui du user root. Bon c&#8217;est quand même bien embêtant je l&#8217;avoue, ça fait pas très pro.</p>
<p>Réinitialiser le mot de passe est souvent la seule solution. Voici une des solutions possible :</p>
<pre>sudo /etc/init.d/mysql stop

sudo mysqld_safe --skip-grant-tables &amp;

mysql&gt; use mysql;

mysql&gt; update user set authentication_string=password('monnouveaumotdepasse') where user='root';
</pre>
<div id="attachment_media-441" style="width: 877px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-media-441" class="alignnone size-full wp-image-219" src="http://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349.jpeg" alt="hacker screen" width="867" height="1300" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349.jpeg 867w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349-200x300.jpeg 200w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349-768x1152.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-193349-683x1024.jpeg 683w" sizes="auto, (max-width: 867px) 100vw, 867px" /><p id="caption-attachment-media-441" class="wp-caption-text">Photo by Markus Spiske freeforcommercialuse.net on <a href="https://www.pexels.com/" rel="nofollow">Pexels.com</a></p></div>
<p>Une autre solution en passant par systemd :</p>
<pre># on relance mysql sans les GRANTS sur les tables
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl restart mysql

# puis on set le nouveau mot de passe
UPDATE mysql.user SET password=PASSWORD('monouveaumotdepasse') WHERE User='root' AND Host = 'localhost';
FLUSH PRIVILEGES;

#et surtout sinon tu es mort tu remets les permissions en place merci !
systemctl unset-environment MYSQLD_OPTS
systemctl restart mysql
</pre>
<p>&nbsp;</p>
<p>L’article <a href="https://xavki.blog/mysql-mariadb-reinitialiser-le-mot-de-passe-root-faut-pas-le-dire/">[Mysql] [Mariadb] : réinitialiser le mot de passe root (faut pas le dire)</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[MySql] : vider toutes les tables d&#8217;une base</title>
		<link>https://xavki.blog/mysql-vider-toutes-les-tables-dune-base/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Tue, 17 Jul 2018 08:54:33 +0000</pubDate>
				<category><![CDATA[Mysql]]></category>
		<guid isPermaLink="false">https://xavki.wordpress.com/?p=163</guid>

					<description><![CDATA[<p><img width="1880" height="1268" src="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297.jpeg 1880w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-300x202.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-768x518.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-1024x691.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-1568x1058.jpeg 1568w" sizes="auto, (max-width: 1880px) 100vw, 1880px" />On a pas tous une âme de DBA mais ces dernières années les sgbd ce sont tellement simplifiés que finalement les actions restent assez accessibles pour tous. Alors on cherche toujours à aller un peu plus loin. Mysql est très... <a href="https://xavki.blog/mysql-vider-toutes-les-tables-dune-base/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/mysql-vider-toutes-les-tables-dune-base/">[MySql] : vider toutes les tables d&#8217;une base</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="1880" height="1268" src="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297.jpeg 1880w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-300x202.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-768x518.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-1024x691.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-1568x1058.jpeg 1568w" sizes="auto, (max-width: 1880px) 100vw, 1880px" /><p>On a pas tous une âme de DBA mais ces dernières années les sgbd ce sont tellement simplifiés que finalement les actions restent assez accessibles pour tous. Alors on cherche toujours à aller un peu plus loin.</p>
<p>Mysql est très facile à utiliser en ligne de commande. Du coup cela permet aussi de manipuler ses output dans une ligne bash ou awk.</p>
<p>Vider toutes les tables d&#8217;une base de données en une ligne c&#8217;est possible voici comment :</p>
<pre>MYSQL_CONNECT="mysql -h hostname -u username -ppassword -D database";
$MYSQL_CONNECT -Bne "show tables;" | awk '{print "set foreign_key_checks=0; drop table `" $1 "`;"}' | $MYSQL_CONNECT unset MYSQL 
</pre>
<p>Donc :</p>
<ul>
<li>on créé une variable permettant de lancer le binaire mysql avec les éléments de connexions</li>
<li>on lance le binaire avec l&#8217;option -Bne ( n : flush du cache , B : tabulation comme séparateur , e : sql entre quotes )</li>
<li>on génère le sql pour dropper la table mais on set le fait de ne pas s&#8217;occuper des clés étrangères</li>
<li>on unset les variables</li>
</ul>
<div id="attachment_media-119" style="width: 1890px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-media-119" class="alignnone size-full wp-image-164" src="http://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297.jpeg" alt="person hands on assorted color plastic lid lot" width="1880" height="1268" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297.jpeg 1880w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-300x202.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-768x518.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-1024x691.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-761297-1568x1058.jpeg 1568w" sizes="auto, (max-width: 1880px) 100vw, 1880px" /><p id="caption-attachment-media-119" class="wp-caption-text">Photo by Krizjohn Rosales on <a href="https://www.pexels.com/" rel="nofollow">Pexels.com</a></p></div>
<p>&nbsp;</p>
<p>L’article <a href="https://xavki.blog/mysql-vider-toutes-les-tables-dune-base/">[MySql] : vider toutes les tables d&#8217;une base</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[Mysql] [Docker] : Sauvegarde mysql pour conteneurs Docker</title>
		<link>https://xavki.blog/sauvegarde-mysql-de-conteneurs-docker/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Thu, 14 Jun 2018 15:26:05 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Mysql]]></category>
		<guid isPermaLink="false">https://xavki.wordpress.com/?p=27</guid>

					<description><![CDATA[<p>Je publie ce code car je le trouve bien pratique. Le raisonnement me semble logique et j&#8217;ai apprécié le rédiger alors cela peut surement vous inspirer. Si vous êtes curieux, vous pouvez retrouver mes commandes docker sur cette page. Alors... <a href="https://xavki.blog/sauvegarde-mysql-de-conteneurs-docker/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/sauvegarde-mysql-de-conteneurs-docker/">[Mysql] [Docker] : Sauvegarde mysql pour conteneurs Docker</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Je publie ce code car je le trouve bien pratique. Le raisonnement me semble logique et j&#8217;ai apprécié le rédiger alors cela peut surement vous inspirer. Si vous êtes curieux, vous pouvez retrouver <a href="https://xavki.blog/docker/">mes commandes docker sur cette page</a>.</p>
<p>Alors je vous dresse les points essentiels du code car le mien fait intègre aussi postgres et mariadb (identique à mysql exactement).</p>
<p>Premièrement on liste les ID, les noms et les images des conteneurs. Comme on log tout cela cela permet de recréer aussi très rapidement un conteneur Docker identique. Et puis cela permet aussi de tester le dump facilement.</p>
<pre>docker ps --format "{{ .ID }}|\
{{ .Names }}|\
{{.Image}}" |\
while IFS="|" read var1 var2 var3;\
do</pre>
<p>Ensuite on nettoie le nom du conteneur car Docker ajoute un sha pour le rendre unique et c&#8217;est pas très causant. et on peut se créer un répertoire local de backup (mais cela peut aussi être un point de montage.</p>
<pre>var2=$(echo $var2 | sed -e 's/\(.*\)\..*$/\1/g')
BACKUP_DIR="/dir_export/"
DUMP_DIR=${BACKUP_DIR}${var2}/
DUMP=BACKUP_DIR="/export/sgbd-dumps/"
DATEDUMP=$(date +%Y-%m-%d)
DUMP=${DATEDUMP}.${var2}</pre>
<p>et on commence par logger quelques infos :</p>
<pre>echo "---- ${DATEDUMP} /  Dump du container ${var2}    -----" &gt; ${DUMP_DIR}${DUMP}.log
 echo ${DATEDUMP}"-name &gt;&gt;"$var2 &gt;&gt; ${DUMP_DIR}${DUMP}.log
 echo ${DATEDUMP}"-image &gt;&gt;"$var3 &gt;&gt; ${DUMP_DIR}${DUMP}.log
 echo ${DATEDUMP}"-dump &gt;&gt;"${DUMP_DIR} &gt;&gt; ${DUMP_DIR}${DUMP}.log</pre>
<p>Et c&#8217;est parti on lance la sauvegarde mysqldump en lancant un docker exec sur l&#8217;ID du conteneur recueilli.</p>
<pre>echo ""
echo "---- ${DATEDUMP} /  Dump du container ${var2}    -----"
docker exec ${var1} mysqldump -u  --password= --all-databases  &gt; ${DUMP_DIR}${DUMP}.sql</pre>
<p>Alors on aurait pu ajouter un gzip directement dessus et ne sauvegarder qu&#8217;une seule base. Personnellement on ne sait on part sur un truc complet. Et pui savant de gzippé on vérifie le boulot 😉</p>
<p>Alors comment on fait pour tester notre dump ???</p>
<p>C&#8217;est simple. On créé un conteneur identique et ensuite on importe notre dump dedans. N&#8217;ayez pas peur c&#8217;est hyper facile.</p>
<pre>docker run --name testsgbd -e MYSQL_ROOT_PASSWORD= -tid $var3 | grep -vi warning</pre>
<pre>sleep 40</pre>
<p>On voit que $var3 nous permet de lancer la même image que dans le conteneur sauvegardé. Et on met tout cela en pause durant 40 secondes. C&#8217;est beaucoup mais on s&#8217;assure que le conteneur est bien lancé (ou au moins à eu le temps).</p>
<p>Et la on importe mais pas n&#8217;importe comment. On fait un test (un if) sur la commande d&#8217;import mysql lancée à travers docker. Si aucun message d&#8217;erreur on à ainsi un dump conforme sinon KO. Et si OK on gzip</p>
<pre>if [ -n "$(docker exec -i testsgbd mysql -uroot -ppassRoot &lt;${DUMP_DIR}${DUMP}.sql 2&gt;&amp;1 | grep -vi Warning )" ];then
                       echo " &gt;&gt;&gt; ${DATEDUMP} : [Error]" &gt;&gt; ${DUMP_DIR}${DUMP}.log
                      echo "[Pb import]"
                        rm -f ${DUMP_DIR}${DUMP}
                else
                        echo " &gt;&gt;&gt; ${DATEDUMP} : [OK]" &gt;&gt; ${DUMP_DIR}${DUMP}.log
                        echo "[Import OK]"
                        echo "Gzip..."
                        gzip ${DUMP_DIR}${DUMP}*.sql
                        echo "fin"
                fi</pre>
<p>et surtout on oublie pas de nettoyer en supprimant l&#8217;image créée.</p>
<pre>docker rm -f testsgbd</pre>
<p>Alors c&#8217;est pas simple tout cela ?</p>
<p>Je trouve que si et que ça mérite d&#8217;être partagé, c&#8217;est pour cela que cela valait bien un article.</p>
<p>L’article <a href="https://xavki.blog/sauvegarde-mysql-de-conteneurs-docker/">[Mysql] [Docker] : Sauvegarde mysql pour conteneurs Docker</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
