
{"id":985,"date":"2010-10-22T16:01:08","date_gmt":"2010-10-22T15:01:08","guid":{"rendered":"http:\/\/dasini.net\/blog\/?p=985"},"modified":"2024-12-10T15:44:04","modified_gmt":"2024-12-10T14:44:04","slug":"cest-dans-les-vieux-pots","status":"publish","type":"post","link":"https:\/\/dasini.net\/blog\/2010\/10\/22\/cest-dans-les-vieux-pots\/","title":{"rendered":"C&rsquo;est dans les vieux pots&#8230; ?"},"content":{"rendered":"<p>J&rsquo;ai\u00a0eu r\u00e9cemment \u00e0 intervenir sur un de nos serveurs MySQL en production. L&rsquo;une de nos \u00e9quipes m&rsquo;a remont\u00e9 le fait que la commande SELECT n&rsquo;affichait pas plus de 1000 enregistrements sur\u00a0certaines des tables de la base !<\/p>\n<p>J&rsquo;ai instinctivement pens\u00e9 \u00e0 un probl\u00e8me de corruptions de tables, j&rsquo;ai donc lanc\u00e9 un SHOW TABLE STATUS&#8230; et j&rsquo;ai eu la r\u00e9ponse suivant:<\/p>\n<pre><span style=\"color: #003366;\">mysql&gt; SHOW TABLE STATUS;\nERROR 1064: You have an error in your SQL syntax near 'TABLE STATUS' at line 1<\/span><\/pre>\n<p>M\u00eame r\u00e9ponse avec un SHOW CREATE TABLE&#8230;<\/p>\n<p>En fait la raison de cette erreur 1064 est la suivante:<\/p>\n<div style=\"width: 310px\" class=\"wp-caption alignnone\"><a title=\"MySQL 3.22.32, commande status\" href=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-includes\/images\/blog\/MySQL-3.22.32_status.png\" target=\"_blank\" rel=\"noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" title=\"MySQL 3.22.32_status\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-includes\/images\/blog\/MySQL-3.22.32_status_min.png?resize=300%2C162\" alt=\"MySQL 3.22.32, commande help dans le client texte\" width=\"300\" height=\"162\" \/><\/a><p class=\"wp-caption-text\">MySQL 3.22.32, commande status dans le client texte<\/p><\/div>\n<p>Version du serveur MySQL<strong><span style=\"color: #ff0000;\"> 3.22.32<\/span><\/strong> !<\/p>\n<p>Je ne vous raconte pas l&rsquo;\u00e9motion \ud83d\ude42 L&rsquo;uptime \u00e9tait de pr\u00e8s de 400 jours et le principe \u00ab\u00a0tant que \u00e7a marche, on touche pas !\u00a0\u00bb est pleinement appliqu\u00e9.<\/p>\n<p>Alors pour ne rien vous cacher, la 3.22 n&rsquo;est pas la norme chez nous :), les nouveaux projets partent avec de la 5.1 (parfois encore avec de la 5.0).<\/p>\n<p>La 3.22.32 est sortie le 14 f\u00e9vrier 2000.\u00a0Voici l&rsquo;annonce de sa sortie, effectu\u00e9e par un\u00a0certain\u00a0Monty\u00a0<a href=\"http:\/\/lists.mysql.com\/announce\/45\">http:\/\/lists.mysql.com\/announce\/45<\/a>.<\/p>\n<div style=\"width: 310px\" class=\"wp-caption alignnone\"><a title=\"MySQL 3.22.32, commande help\" href=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-includes\/images\/blog\/MySQL-3.22.32-help.png\" target=\"_blank\" rel=\"noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" title=\"MySQL 3.22.32_help\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-includes\/images\/blog\/MySQL-3.22.32-help_min.png?resize=300%2C233\" alt=\"MySQL 3.22.32, commande help dans le client texte\" width=\"300\" height=\"233\" \/><\/a><p class=\"wp-caption-text\">MySQL 3.22.32, commande help dans le client texte<\/p><\/div>\n<p>La commande SHOW VARIABLES renvoie 37 r\u00e9sultats (274 en 5.1.50)<\/p>\n<div style=\"width: 310px\" class=\"wp-caption alignnone\"><a title=\"MySQL 3.22.32, commande show variables\" href=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-includes\/images\/blog\/MySQL-3.22.32_sv.png\" target=\"_blank\" rel=\"noopener\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" title=\"MySQL 3.22.32_show_variables\" src=\"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-includes\/images\/blog\/MySQL-3.22.32_sv_min.png?resize=300%2C233\" alt=\"MySQL 3.22.32, commande show variables dans le client texte\" width=\"300\" height=\"233\" \/><\/a><p class=\"wp-caption-text\">MySQL 3.22.32, commande show variables dans le client texte<\/p><\/div>\n<p>P.S. Fin mot de cette histoire, un autre sympt\u00f4me donnait l&rsquo;erreur suivante:<\/p>\n<pre><span style=\"color: #003366;\">ERROR 1114: The table 'SQL5662e654_0' is full<\/span><\/pre>\n<p>Le probl\u00e8me a \u00e9t\u00e9 r\u00e9gl\u00e9, en augmentant la variable tmp_table_size.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;ai\u00a0eu r\u00e9cemment \u00e0 intervenir sur un de nos serveurs MySQL en production. L&rsquo;une de nos \u00e9quipes m&rsquo;a remont\u00e9 le fait que la commande SELECT n&rsquo;affichait pas plus de 1000 enregistrements sur\u00a0certaines des tables de la base !<\/p>\n<p>J&rsquo;ai instinctivement pens\u00e9 \u00e0 un probl\u00e8me de corruptions de tables, j&rsquo;ai donc lanc\u00e9 un SHOW TABLE STATUS&#8230; et j&rsquo;ai eu la r\u00e9ponse suivant:<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-985","post","type-post","status-publish","format-standard","hentry","category-mysql"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9LfWW-fT","jetpack-related-posts":[{"id":453,"url":"https:\/\/dasini.net\/blog\/2009\/02\/18\/optimisation-de-requetes-comprendre-loptimiseur-de-mysql\/","url_meta":{"origin":985,"position":0},"title":"Optimisation de requ\u00eates: comprendre l&rsquo;optimiseur de MySQL","author":"Olivier DASINI","date":"18 f\u00e9vrier 2009","format":false,"excerpt":"Le but de cet article est d'optimiser une simple requ\u00eate (SELECT avg(Population) FROM city GROUP BY CountryCode) et surtout de comprendre comment l'optimiseur proc\u00e8de, en \u00e9tudiant les r\u00e9sultats donn\u00e9s par les variables qui permettent de surveiller le serveur MySQL.","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":614,"url":"https:\/\/dasini.net\/blog\/2009\/05\/06\/le-programmateur-devenements-event-scheduler-part-36\/","url_meta":{"origin":985,"position":1},"title":"Le programmateur d&rsquo;\u00e9v\u00e9nements ( Event Scheduler ) (part 3\/6)","author":"Olivier DASINI","date":"6 mai 2009","format":false,"excerpt":"G\u00e9rer les \u00e9v\u00e8nements MySQL propose plusieurs m\u00e9thodes pour visualiser les \u00e9v\u00e8nements. La m\u00e9thode la plus pratique consiste \u00e0 aller chercher l'information dans la table event de la base de donn\u00e9es des m\u00e9ta-donn\u00e9es information_schema: mysql> SELECT * FROM information_schema.EVENTS;","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1593,"url":"https:\/\/dasini.net\/blog\/2016\/03\/02\/30-mins-avec-mysql-query-rewriter\/","url_meta":{"origin":985,"position":2},"title":"30 mins avec MySQL Query Rewriter","author":"Olivier DASINI","date":"2 mars 2016","format":false,"excerpt":"Parfois des requ\u00eates probl\u00e9matiques tournent sur le serveur, mais il n'est pas possible de r\u00e9gler le probl\u00e8me \u00e0 la source (Requ\u00eates venant d'un ORM par example) MySQL 5.7 fournit une API pre et post parse query rewrite. Les utilisateurs peuvent \u00e9crire leurs propre plugins ce qui permet d'\u00e9liminer le besoin\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":788,"url":"https:\/\/dasini.net\/blog\/2009\/10\/12\/mysql-query-cache\/","url_meta":{"origin":985,"position":3},"title":"MySQL Query cache","author":"Olivier DASINI","date":"12 octobre 2009","format":false,"excerpt":"Le cache est toujours \u00e0 jour car en cas de modification d'une table, toutes les requ\u00eates en relations avec cette table sont invalid\u00e9es. Le cache de requ\u00eates est en g\u00e9n\u00e9ral utile lorsque: Les modifications sur les tables ne sont pas tr\u00e8s fr\u00e9quentes Beaucoup de requ\u00eates de lectures identiques Utilisation de\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":430,"url":"https:\/\/dasini.net\/blog\/2009\/01\/29\/influencer-loptimiseur-de-mysql\/","url_meta":{"origin":985,"position":4},"title":"Influencer l&rsquo;optimiseur de MySQL","author":"Olivier DASINI","date":"29 janvier 2009","format":false,"excerpt":"Il est possible d'influencer l'optimiseur pour qu'il choisisse d'utiliser ou de ne pas utiliser un index particulier. Les clauses \u00e0 placer dans votre requ\u00eate SELECT sont les suivantes: USE INDEX : utilise l'index pass\u00e9 en argument (MySQL ne l'utilisera pas si l'index est plus couteux qu'un full table scan) FORCE\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1746,"url":"https:\/\/dasini.net\/blog\/2017\/01\/11\/configurer-proxysql-pour-mysql-group-replication\/","url_meta":{"origin":985,"position":5},"title":"Configurer ProxySQL pour MySQL Group Replication","author":"Olivier DASINI","date":"11 janvier 2017","format":false,"excerpt":"Dans un pr\u00e9c\u00e9dent article je vous ai pr\u00e9sent\u00e9 comment d\u00e9ployer un cluster MySQL Group Replication, la nouvelle solution de haute disponibilit\u00e9 de MySQL. Ce type d'architecture est souvent utilis\u00e9 avec un composant qui se place entre l'application et le cluster,composant g\u00e9n\u00e9ralement appel\u00e9 proxy (quelque chose) ou router quelque chose. Dans\u2026","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_Group_Replication_and_ProxySQL.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/comments?post=985"}],"version-history":[{"count":16,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/985\/revisions"}],"predecessor-version":[{"id":7236,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/985\/revisions\/7236"}],"wp:attachment":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/media?parent=985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/categories?post=985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/tags?post=985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}