<?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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Tech de Gamuza</title>
	<link>https://tech.gamuza.fr/</link>
	
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://tech.gamuza.fr/spip.php?id_mot=11&amp;page=backend" rel="self" type="application/rss+xml" />




<item xml:lang="fr">
		<title>Utiliser une sous-requ&#234;te MySQL pour compter le nombre de liaisons sur un &#233;l&#233;ment</title>
		<link>https://tech.gamuza.fr/Utiliser-une-sous-requete-MySQL-pour-compter-le-nombre-de-liaisons-sur-un.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/Utiliser-une-sous-requete-MySQL-pour-compter-le-nombre-de-liaisons-sur-un.html</guid>
		<dc:date>2024-07-13T00:05:42Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>clem</dc:creator>


		<dc:subject>tutoriel</dc:subject>
		<dc:subject>MySQL</dc:subject>
		<dc:subject>COUNT</dc:subject>

		<description>&lt;p&gt;COUNT() qui permet de compter le nombre d'occurrences d'une valeur dans une table peut &#234;tre utilis&#233; en sous-requ&#234;te pour d&#233;nombrer, par exemple, le nombre de liaisons de l'&#233;l&#233;ment dans une autre table&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-formations-.html" rel="directory"&gt;D&#233;veloppement web&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-tutoriel-+.html" rel="tag"&gt;tutoriel&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-mysql-+.html" rel="tag"&gt;MySQL&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-COUNT-+.html" rel="tag"&gt;COUNT&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Exemple en SPIP d'utilisation de &lt;strong&gt;COUNT()&lt;/strong&gt; en sous-requ&#234;te&lt;/h2&gt;
&lt;p&gt;La table &lt;strong&gt;spip_mots_liens&lt;/strong&gt; est utilis&#233;e pour stocker les liaisons des objets SPIP (articles, rubriques...) sur les mots cl&#233;s de la table &lt;strong&gt;spip_mots&lt;/strong&gt;.&lt;br class='autobr' /&gt;
On souhaite faire une liste des mots cl&#233;s du groupe 2 avec pour chacun le nombre de liaisons qu'il poss&#232;de :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;SELECT m.id_mot, m.titre, (SELECT COUNT(L.id_mot) FROM spip_mots_liens AS L WHERE L.id_mot = m.id_mot) AS nb FROM spip_mots AS m WHERE m.id_groupe=2 ORDER BY m.titre;&lt;/textarea&gt;
&lt;p&gt;on obtient un r&#233;sultat de la forme&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;| id_mot | titre | nb | | 122 | acceptability | 1 | |185 | adaptation | 1 | | 220 | agriculture | 1 |&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Myextract : un script pour restaurer un ensemble de dumps MySQL</title>
		<link>https://tech.gamuza.fr/un-script-pour-restaurer-un-ensemble-de-dumps-mysql.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/un-script-pour-restaurer-un-ensemble-de-dumps-mysql.html</guid>
		<dc:date>2015-10-12T14:25:59Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>clem</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>MySQL</dc:subject>
		<dc:subject>script sh</dc:subject>

		<description>&lt;p&gt;&lt;strong&gt;But du script&lt;/strong&gt; : restaurer un ensemble de dumps MySQL bzipp&#233;s et stock&#233;s dans un r&#233;pertoire en une seule op&#233;ration (utilitaire pour migration de serveur).&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-scripts-et-commandes-sh-.html" rel="directory"&gt;Scripts sh&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-bash-+.html" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-mysql-+.html" rel="tag"&gt;MySQL&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-script-sh-+.html" rel="tag"&gt;script sh&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div class='spip_document_59 spip_document spip_documents spip_document_image spip_documents_right spip_document_right'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://tech.gamuza.fr/local/cache-vignettes/L469xH154/liste_dumps2-3a1a0.jpg?1768436110' width='469' height='154' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Le but de ce script est de restaurer un ensemble de sauvegardes MySQL qui sont stock&#233;es au format bzip2 dans un dossier. Chaque fichier d'extension .sql.bz2 porte le nom de la base de donn&#233;es dans laquelle il doit &#234;tre restaur&#233; : par exemple &lt;strong&gt;toto.sql.bz2&lt;/strong&gt; devra &#234;tre restaur&#233; dans la base &lt;strong&gt;toto&lt;/strong&gt;.&lt;br class='autobr' /&gt;
Le chemin du dossier contenant les sauvegardes est pass&#233; en param&#232;tre au script.&lt;br class='autobr' /&gt;
&lt;br style=&#034;clear: both;&#034;/&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='28' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#!/bin/bash # myextract.sh # decompacte un ensemble de dumps MySQL bzipp&#233;s stock&#233;es dans un r&#233;pertoire # le chemin du r&#233;pertoire est pass&#233; en param&#232;tre du script # exemple: myextract.sh /chemin/du/repertoire/des_bzips # configuration # nom et mot de passe de l'utilisateur MySQL USER_MYSQL=toto PASS_MYSQL=&#034;super_secret&#034; for j in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ls -1 -r $1&lt;/code&gt;; do LA_BASE=&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;echo $j |sed s/.sql.bz2//&lt;/code&gt; echo &#034;restauration de $LA_BASE&#034; # si les fichiers de dump ont &#233;t&#233;s g&#233;n&#233;r&#233;s avec l'option -B (cr&#233;ation de la base), # enlever l'option -D $LA_BASE dans la commande suivante bunzip2 -c $1/$j | mysql -u$USER_MYSQL --password=$PASS_MYSQL -D $LA_BASE done&lt;/textarea&gt;
&lt;p&gt;A lancer dans un tmux/screen si le nombre de sauvegardes (ou leur taille) est cons&#233;quent(e).&lt;/p&gt;
&lt;p&gt;Pour la g&#233;n&#233;ration des sauvegardes MySQL sous forme de fichiers bzipp&#233;s voir : &lt;a href='https://tech.gamuza.fr/mydump-un-petit-script-pour-sauvegarder-des-bases-de-donnees-au-format-bzip2.html' class=&#034;spip_in&#034;&gt;Mydump : un petit script pour sauvegarder des bases de donn&#233;es au format bzip2&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Mydump : un petit script pour sauvegarder des bases de donn&#233;es au format bzip2</title>
		<link>https://tech.gamuza.fr/mydump-un-petit-script-pour-sauvegarder-des-bases-de-donnees-au-format-bzip2.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/mydump-un-petit-script-pour-sauvegarder-des-bases-de-donnees-au-format-bzip2.html</guid>
		<dc:date>2015-10-12T13:08:30Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>clem</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>Linux</dc:subject>
		<dc:subject>MySQL</dc:subject>
		<dc:subject>script sh</dc:subject>

		<description>&lt;p&gt;&lt;strong&gt;But du script&lt;/strong&gt; : r&#233;aliser la sauvegarde de bases de donn&#233;es au format bzip2 (utilitaire pour migration de serveur).&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-scripts-et-commandes-sh-.html" rel="directory"&gt;Scripts sh&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-bash-+.html" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-linux-+.html" rel="tag"&gt;Linux&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-mysql-+.html" rel="tag"&gt;MySQL&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-script-sh-+.html" rel="tag"&gt;script sh&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Base :&lt;/h2&gt;
&lt;p&gt;Lorsque l'on administre un serveur web (sous Linux), t&#244;t o&#249; tard on se retrouve confront&#233; &#224; la n&#233;cessit&#233; de faire la sauvegarde d'une ou plusieurs bases de donn&#233;es MySQL. &lt;br class='autobr' /&gt;
Le script suivant permet de minimiser les r&#233;p&#233;titions : il r&#233;alise le dump au format bzip2 de la base de donn&#233;es dont on a pass&#233; le nom en param&#232;tre. Le dossier de destination est configurable dans le script.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='19' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#!/bin/bash # mydump.sh # script pour dump + bzip2 d'une bdd # le nom de la bdd est pass&#233; en param&#232;tre au script # exemple: ./mydump.sh la_base_a_dumper # configuration # chemin du dossier de stockage des dumps CHEMIN_DUMPS=/home/technique/dumps_sauvegardes # nom et mot de passe de l'utilisateur MySQL USER_MYSQL=toto PASS_MYSQL=&#034;super_secret&#034; # creer la base de donnees: utiliser -B comme parametre echo &#034;dump + gzip de $1 dans $CHEMIN_DUMPS/$1.sql.bz2&#034; mysqldump -u $USER_MYSQL --password=$PASS_MYSQL -B --opt $1 | bzip2 -c -1 &gt; $CHEMIN_DUMPS/$1.sql.bz2&lt;/textarea&gt;
&lt;p&gt;A lancer dans un tmux (ou screen) si vos bases sont grosses et/ou votre connexion ssh peu fiable...&lt;/p&gt;
&lt;p&gt;Pour la restauration d'un ensemble de sauvegardes bzipp&#233;s, voir &lt;a href='https://tech.gamuza.fr/un-script-pour-restaurer-un-ensemble-de-dumps-mysql.html' class=&#034;spip_in&#034;&gt;Myextract : un script pour restaurer un ensemble de dumps MySQL&lt;/a&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Pour aller plus loin :&lt;/h2&gt;
&lt;p&gt;On peut vouloir automatiser un peu plus la sauvegarde en passant un fichier listant toutes les bases &#224; sauver, fichier g&#233;n&#233;r&#233; &#224; partir de la liste des bases pr&#233;sentes sur le serveur.&lt;/p&gt;
&lt;p&gt;Le sc&#233;nario &#034;&#233;volu&#233;&#034; pourrait donc &#234;tre :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; g&#233;n&#233;rer le fichier &lt;strong&gt;liste_bases.txt&lt;/strong&gt; listant toutes les bases : &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;mysql -utoto -p&#034;super_secret&#034; -e 'show databases;' &gt; liste_bases.txt&lt;/textarea&gt;
&lt;p&gt;Le fichier obtenu liste l'ensemble des bases pr&#233;sentes, une par ligne.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt; &#233;diter le fichier et enlever les bases qui ne sont pas &#224; sauvegarder (phpmyadmin, performance_schema, mysql...)&lt;/li&gt;&lt;li&gt; lancer &lt;strong&gt;mydump.sh&lt;/strong&gt; en boucle sur toutes les tables restant dans le fichier &lt;strong&gt;liste_bases.txt&lt;/strong&gt; : &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;for i in &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;cat liste_bases.txt&lt;/code&gt;;do ./mydump.sh $i;done&lt;/textarea&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
