<?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>mysql &#8211; Kodono</title>
	<atom:link href="https://blog.kodono.info/wordpress/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.kodono.info/wordpress</link>
	<description>Pour tous les technophiles</description>
	<lastBuildDate>Sat, 28 Apr 2018 09:04:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>Interclassement MySQL pour le français</title>
		<link>https://blog.kodono.info/wordpress/2018/04/28/interclassement-mysql-pour-le-francais/</link>
					<comments>https://blog.kodono.info/wordpress/2018/04/28/interclassement-mysql-pour-le-francais/#respond</comments>
		
		<dc:creator><![CDATA[Aymeric]]></dc:creator>
		<pubDate>Sat, 28 Apr 2018 09:04:40 +0000</pubDate>
				<category><![CDATA[Français]]></category>
		<category><![CDATA[mysql]]></category>
		<guid isPermaLink="false">https://blog.kodono.info/wordpress/?p=1898</guid>

					<description><![CDATA[Quel interclassement (dit aussi collation) choisir pour sa base MySQL afin d&#8217;y enregistrer des caractères français (entre autres) ? L&#8217;interclassement a deux fonctions : Permettre l&#8217;ordonnancement correct d&#8217;une liste de caractères (pour indiquer que le &#8220;é&#8221; vient après le &#8220;e&#8221;, ou que les majuscules viennent avant les minuscules, etc) Permettre de savoir quand un caractère [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Quel interclassement (dit aussi <em>collation</em>) choisir pour sa base MySQL afin d&#8217;y enregistrer des caractères français (entre autres) ?</p>
<p>L&#8217;interclassement <a href="https://openclassrooms.com/courses/comprendre-les-jeux-de-caracteres-et-interclassements">a deux fonctions</a> :</p>
<ol>
<li>Permettre l&#8217;ordonnancement correct d&#8217;une liste de caractères (pour indiquer que le &#8220;é&#8221; vient après le &#8220;e&#8221;, ou que les majuscules viennent avant les minuscules, etc)</li>
<li>Permettre de savoir quand un caractère est &#8220;équivalent&#8221; à un autre (dans les requêtes WHERE que, par exemple, le caractère &#8220;e&#8221; est équivalent à &#8220;E&#8221;, &#8220;é&#8221;, &#8220;è&#8221; ou &#8220;ê&#8221;)</li>
</ol>
<p>Sur <a href="http://fluxbb.fr/aide/doku.php?id=mysql_charset_collation">fluxbb</a> on retrouve une très bonne explication. Je copie qu&#8217;une partie, mais allez lire cet article vraiment complet :</p>
<blockquote><p>MySQL permet de choisir comment les données seront classées (ORDER BY) par ce qui est appelé une « collation » (COLLATE). Ceci permet de répondre, par exemple, au problème classique de la sensibilité à la casse :</p>
<ul>
<li>Les majuscules doivent-elles précéder les minuscules, ou bien faut-il considérer A et a comme de même valeur ?</li>
<li>La sensibilité aux accents : comptent-ils dans le tri ? Font-ils une différence lors de la recherche ?</li>
<li>La possibilité qu&#8217;un caractère (ligature oe) puisse correspondre à plusieurs (o suivi de e) : c&#8217;est ce qu&#8217;Unicode appelle « l&#8217;expansion ».</li>
</ul>
<p>Toutes les collations ont un nom qui commence par le jeu de caractère auquel elles sont liées, et se terminent par l&#8217;une de ces trois abréviations :</p>
<ul>
<li><b>_bin</b> comme binary : les caractères sont dans l&#8217;ordre de leurs numéros de code (ce qui donne d&#8217;abord toutes les majuscules, puis toutes les minuscules, puis les lettres accentuées, en vrac).</li>
<li><b>_cs</b> comme case sensitive : les caractères sont triés selon le ou les langages de référence, mais de manière sensible à la casse.</li>
<li><b>_ci</b> comme case insensitive : idem, mais en ignorant la casse.</li>
</ul>
</blockquote>
<p>Il est possible de définir plusieurs niveaux : de la colonne jusqu&#8217;à toute la base de données. Ainsi on peut définir une collation pour une colonne qui sera différente de celle de la table.</p>
<p>Au final, on peut utiliser <b>utf8_unicode_ci</b> : <b>utf8</b> indique qu&#8217;on peut enregistrer une <a href="https://stackoverflow.com/a/30074553/1134119">large palette</a> de caractères (on utilisera <b>utf8mb4</b> si on souhaite enregistrer des émoticones en plus), <b>unicode_ci</b> va permettre un bon tri tout en ignorant la casse.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.kodono.info/wordpress/2018/04/28/interclassement-mysql-pour-le-francais/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mise à jour mysql 5.5 vers 5.6, sur Debian Wheezy</title>
		<link>https://blog.kodono.info/wordpress/2016/01/16/mise-a-jour-mysql-5-5-vers-5-6-sur-debian-wheezy/</link>
					<comments>https://blog.kodono.info/wordpress/2016/01/16/mise-a-jour-mysql-5-5-vers-5-6-sur-debian-wheezy/#comments</comments>
		
		<dc:creator><![CDATA[Aymeric]]></dc:creator>
		<pubDate>Sat, 16 Jan 2016 18:58:42 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Niveau expert]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[mysql]]></category>
		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=1598</guid>

					<description><![CDATA[1) Nouveau repo On crée d&#8217;abord le fichier /etc/apt/sources.list.d/mysql.list avec les deux lignes ci-dessous : deb http://repo.mysql.com/apt/debian/ wheezy mysql-5.6 deb-src http://repo.mysql.com/apt/debian/ wheezy mysql-5.6 2) Clé publique du repo On crée un fichier mysql.key dans lequel on copie/colle la clé publique de mysql. Puis on l&#8217;ajoute à apt : apt-key add mysql.key 3) Export / Backup [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>1) Nouveau repo</strong></p>
<p>On crée d&#8217;abord le fichier <code>/etc/apt/sources.list.d/mysql.list</code> avec les deux lignes ci-dessous :<br />
<code>deb http://repo.mysql.com/apt/debian/ wheezy mysql-5.6<br />
deb-src http://repo.mysql.com/apt/debian/ wheezy mysql-5.6</code></p>
<p><strong>2) Clé publique du repo</strong></p>
<p>On crée un fichier <code>mysql.key</code> dans lequel on copie/colle la <a href="http://dev.mysql.com/doc/refman/5.7/en/checking-gpg-signature.html">clé publique de mysql</a>.</p>
<p>Puis on l&#8217;ajoute à apt :<br />
<code>apt-key add mysql.key</code></p>
<p><strong>3) Export / Backup</strong></p>
<p>On va faire une sauvegarde de la base de données et de la configuration de mysql :<br />
<code>mysqldump -u root -pPASSWORD --add-drop-table --routines --events --add-drop-table --all-databases --force > data-for-upgrade.sql<br />
tar cvfvz /root/mysql_conf.tgz /etc/mysql </code></p>
<p><strong>4) Arrêt du serveur</strong></p>
<p>On stoppe mysql :<br />
<code>mysqladmin -u root -pPASSWORD shutdown</code></p>
<p><strong>5) On met à jour apt</strong></p>
<p><code>apt-get update</code></p>
<p><strong>6) On installe</strong></p>
<p>On installe la nouvelle version :<br />
<code>apt-get install mysql-server-5.6</code></p>
<p><strong>7) On vérifie</strong></p>
<p>Une fois fait, on lance :<br />
<code>mysql_upgrade -v -u root -pPASSWORD</code></p>
<p><strong>8) Dernier upgrade</strong></p>
<p>On lance l&#8217;upgrade pour que tout soit à jour :<br />
<code>apt-get upgrade</code></p>
<p><strong>9) Mise à jour de PHP-Mysql</strong></p>
<p>Si vous avez l&#8217;erreur <a href="https://www.skyminds.net/mysql-resoudre-lerreur-mysql_connect-headers-and-client-library-minor-version-mismatch/">mysql_connect(): Headers and client library minor version mismatch</a>, il est recommandé d&#8217;installer <code>php5-mysqlnd</code> :<br />
<code>apt-get install php5-mysqlnd</code></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.kodono.info/wordpress/2016/01/16/mise-a-jour-mysql-5-5-vers-5-6-sur-debian-wheezy/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Requête MySQL insensible aux accents</title>
		<link>https://blog.kodono.info/wordpress/2014/02/17/requete-mysql-insensible-aux-accents/</link>
					<comments>https://blog.kodono.info/wordpress/2014/02/17/requete-mysql-insensible-aux-accents/#respond</comments>
		
		<dc:creator><![CDATA[Aymeric]]></dc:creator>
		<pubDate>Mon, 17 Feb 2014 09:03:29 +0000</pubDate>
				<category><![CDATA[Niveau débutant]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[mysql]]></category>
		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=1304</guid>

					<description><![CDATA[Pour effectuer une requête MySQL qui ne sera pas sensible aux accents (par exemple &#8216;ö&#8217; = &#8216;o&#8217; ou &#8216;à&#8217; = &#8216;a&#8217;) il faut rajouter le mot clé COLLATE avec la bonne collection. Après plusieurs tests, j&#8217;utilise la collection utf8_general_ci. Ce qui donnera : SELECT ID, Nom FROM Inscrits WHERE Nom LIKE '%heracles%' COLLATE utf8_general_ci ORDER [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Pour effectuer une requête MySQL qui ne sera pas sensible aux accents (par exemple &#8216;ö&#8217; = &#8216;o&#8217; ou &#8216;à&#8217; = &#8216;a&#8217;) il faut rajouter le mot clé COLLATE avec la bonne collection. Après plusieurs tests, j&#8217;utilise la collection <strong>utf8_general_ci</strong>.<br />
Ce qui donnera :</p>
<pre class="brush:sql">SELECT ID, Nom FROM Inscrits WHERE Nom LIKE '%heracles%' COLLATE utf8_general_ci ORDER BY Nom</pre>
<p>Qui retournera, par exemple, &#8220;Héraclès&#8221;.</p>
<p>ATTENTION : si cette requête fonctionne sur le serveur directement, mais pas dans votre code PHP, alors il faudra peut-être utiliser <code>mysqli_set_charset('utf8');</code> dans votre code afin que la liaison se fasse correctement.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.kodono.info/wordpress/2014/02/17/requete-mysql-insensible-aux-accents/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Migrer un forum vers du phpbb3 [Astuces]</title>
		<link>https://blog.kodono.info/wordpress/2009/07/29/migrer-un-forum-vers-du-phpbb3-astuces/</link>
					<comments>https://blog.kodono.info/wordpress/2009/07/29/migrer-un-forum-vers-du-phpbb3-astuces/#comments</comments>
		
		<dc:creator><![CDATA[Aymeric]]></dc:creator>
		<pubDate>Wed, 29 Jul 2009 10:16:57 +0000</pubDate>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Niveau expert]]></category>
		<category><![CDATA[Astuce]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[phpbb3]]></category>
		<guid isPermaLink="false">http://blog.kodono.info/wordpress/?p=276</guid>

					<description><![CDATA[[niveau: expert] J&#8217;ai récemment dû migrer différents forums vers du phpbb3. Sans rentrer dans le détail du moyen de le faire, je vais dire ici les tables qu&#8217;il faut mettre à jour dans votre base MySQL de phpbb3. On va supposer que tous les utilisateurs seront déclarés en anonyme ; ainsi on pourra définir les [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>[niveau: expert]</p>
<p>J&#8217;ai récemment dû migrer différents forums vers du phpbb3. Sans rentrer dans le détail du moyen de le faire, je vais dire ici les tables qu&#8217;il faut mettre à jour dans votre base MySQL de phpbb3.</p>
<p>On va supposer que tous les utilisateurs seront déclarés en anonyme ; ainsi on pourra définir les pseudonymes que l&#8217;on souhaite pour chaque message, sans s&#8217;assurer que l&#8217;utilisateur existe déjà dans la base.</p>
<p>Deux tables sont importantes : <strong>phpbb_topics</strong> et <strong>phpbb_posts</strong>. Comme on le devine, la première contient les topics, et la seconde est pour les messages postés.</p>
<p>Vous pouvez commencer par créer tous vos topics dans <em>phpbb_topics</em>. Les champs suivants doivent être utilisés :</p>
<div class="code">topic_id => l&#8217;id du topic que vous pouvez définir vous-même<br />
forum_id => l&#8217;id du forum où les topics doivent être postés (cf phpbb_forums)<br />
topic_title => titre du topic<br />
topic_views => le nombre de fois que le topic a été lu<br />
topic_poster => l&#8217;ID du poster &#8212; ici nous mettrons &#8216;1&#8217; pour indiquer que le poster est anonyme<br />
topic_time => temps UNIX qui représente le moment où le topic a été créé<br />
topic_first_post_id => l&#8217;ID du premier post du topic (post_id de la table phpbb_posts)<br />
topic_first_poster_name => le nom de celui qui a créé le topic<br />
topic_last_post_id => l&#8217;ID du dernier post du topic (post_id de la table phpbb_posts)<br />
topic_last_poster_id => l&#8217;ID du dernir poster &#8212; ici nous mettrons 1 pour indiquer sur le poster est anonyme<br />
topic_last_poster_name => nom du dernier poster<br />
topic_last_post_subject => le sujet du dernier post du topic (typiquement: &#8220;Re: topic_title&#8221;)<br />
topic_last_post_time => temps UNIX du dernier message du topic<br />
topic_replies => le nombre de messages postés dans ce topic<br />
topic_replies_real => idem</div>
<p>Pour la table <em>phpbb_posts</em>:</p>
<div class="code">post_id => ID du post que vous pouvez définir vous-même<br />
topic_id => l&#8217;ID du topic (pris dans phpbb_topics) auquel ce post appartient<br />
forum_id => l&#8217;ID du forum (cf phpbb_forums)<br />
poster_id => l&#8217;ID du poster &#8212; ici nous mettrons 1 pour indiquer qu&#8217;il est anonyme<br />
poster_ip => l&#8217;IP du poster (si vous l&#8217;avez)<br />
post_time => temps UNIX où le post a été fait<br />
post_username => le nom du poster<br />
post_subject => le sujet du post (si c&#8217;est le premier ce sera le titre tu topic, sinon on peut mettre &#8220;Re: topic_title&#8221;)<br />
post_text => le contenu du post<br />
post_checksum => le MD5 de post_text</div>
<p>Je vous conseille de faire un petit script PHP qui va vous permettre de bien lier correctement les topics aux posts pour ensuite tout insérer dans la base de données.</p>
<p>Il reste encore une table à mettre à jour : <strong>phpbb_forums</strong>. Voici les champs à updater :</p>
<div class="code">forum_topics => nombre de topics présents dans le forum<br />
forum_topics_real => même chose<br />
forum_last_post_id => l&#8217;ID du dernier post<br />
forum_last_poster_id => l&#8217;ID du dernier poster &#8212; nous utiliserons &#8216;1&#8217;<br />
forum_last_post_subject => le titre du dernier post<br />
forum_last_post_time => le temps UNIX du dernier&#8217; post<br />
forum_last_poster_name => le nom du dernier poster</div>
<p>Si jamais vous voulez avoir un exemple des scripts que j&#8217;ai fait (en PHP), contactez moi.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.kodono.info/wordpress/2009/07/29/migrer-un-forum-vers-du-phpbb3-astuces/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
