
{"id":721,"date":"2009-08-13T01:07:05","date_gmt":"2009-08-13T00:07:05","guid":{"rendered":"http:\/\/dasini.net\/blog\/?p=721"},"modified":"2009-08-13T09:17:54","modified_gmt":"2009-08-13T08:17:54","slug":"include","status":"publish","type":"post","link":"https:\/\/dasini.net\/blog\/2009\/08\/13\/include\/","title":{"rendered":"!include"},"content":{"rendered":"<p><a title=\"MySQL ::   MySQL 5.1 Reference Manual :: 4.2.3.3 Using Option Files\" href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.1\/en\/option-files.html\" target=\"_blank\"><strong>my.cnf<\/strong><\/a>, comme vous le savez certainement est le nom du fichier de configuration de MySQL. Vous pouvez \u00e9galement le retrouver sous le nom de <strong>my.ini<\/strong> en environnement MS Windows. Il permet comme son nom l&rsquo;indique de configurer votre serveur MySQL en y centralisant les options de &#8230; configuration. Le but ici n&rsquo;est pas de d\u00e9tailler la longue liste des param\u00e8tres de MySQL, la documentation officielle est (presque) bien faite, mais de mettre le \u00ab\u00a0<em>focus<\/em>\u00a0\u00bb sur la directive <strong>!include<\/strong> (avec un \u00ab\u00a0<strong>!<\/strong>\u00a0\u00bb devant).<\/p>\n<p>Cette derni\u00e8re permet d&rsquo;inclure un fichier de configuration dans un autre (<em>sic<\/em>). Autant je suis un ad\u00e8pte de la non duplication du code en d\u00e9vellopement (des <em>require_once<\/em> en PHP utilis\u00e9s avec mod\u00e9ration \u00e7a vous simplifie bien votre code), autant je ne suis pas un grand fan pour \u00e9clater la configuration de mon serveur MySQL en plusiseurs endroits. Cependant \ud83d\ude42 il faut avouer que parfois cela peut servir !<\/p>\n<h4>Alors comment \u00e7a marche ?<\/h4>\n<p>C&rsquo;est (<em>apparemment<\/em>) tr\u00e8s simple. Mon client mysql va chercher sa configuration dans diff\u00e9rents endroits (d\u00e9finit \u00e0 la compilation):<\/p>\n<address><span style=\"color: #0000ff;\">daz@daz-laptop:~$ mysql &#8211;help<\/span><\/address>\n<address><span style=\"color: #0000ff;\">&#8230;<\/span><\/address>\n<address><span style=\"color: #0000ff;\">Default options are read from the following files in the given order:<br \/>\n<strong>\/etc\/my.cnf<\/strong> <strong>\/etc\/mysql\/my.cnf<\/strong> <strong>\/usr\/local\/mysql\/etc\/my.cnf<\/strong> <strong>~\/.my.cnf<\/strong><\/span> <\/address>\n<p><!-- \t\t!--><\/p>\n<p><!-- \t\t!--><br \/>\nMon fichier de configuration se nomme\u00a0 \/etc\/mysql\/my.cnf et il contient simplement la directive !include suivit du \u00ab\u00a0vraie\u00a0\u00bb fichier de configuration:<\/p>\n<address><span style=\"color: #0000ff;\">daz@daz-laptop:~$ cat \/etc\/mysql\/my.cnf<br \/>\n<strong>!include \/home\/daz\/sandboxes\/msb_5_1_35\/my.sandbox.cnf<\/strong><\/span> <\/address>\n<p><!-- \t\t!--><\/p>\n<p><!-- \t\t!--><br \/>\nEt au final dans mon fichier de configuration (au passage j&rsquo;utilise le tr\u00e8s pratique soft d\u00e9velopp\u00e9 par <a title=\"Giuseppe Maxia - Data Charmer\" href=\"http:\/\/datacharmer.blogspot.com\/\" target=\"_blank\">Giuseppe Maxia<\/a> : <a title=\"MySQL Sandbox\" href=\"http:\/\/mysqlsandbox.net\/\" target=\"_blank\">MySQL Sandbox<\/a>):<\/p>\n<address><span style=\"color: #0000ff;\">daz@daz-laptop:~$ cat \/home\/daz\/sandboxes\/msb_5_1_35\/my.sandbox.cnf<\/span><\/address>\n<address><span style=\"color: #0000ff;\">[mysql]<br \/>\nprompt=&rsquo;mysql [\\h] {\\u} (\\d) &gt; &lsquo;<\/span> <\/address>\n<address><span style=\"color: #0000ff;\">[client]<br \/>\nport            \t\t= 5135<br \/>\nsocket          \t\t= \/tmp\/mysql_sandbox5135.sock<br \/>\n&#8230;<\/span><\/address>\n<p><!-- \t\t!--><\/p>\n<p><!-- \t\t!--><br \/>\nSimple non ?<\/p>\n<p>C&rsquo;est (presque) tout, et \u00e7a marche&#8230;pas \ud83d\ude41<\/p>\n<address><span style=\"color: #0000ff;\">daz@daz-laptop:~$ mysql<\/span><\/address>\n<address><span style=\"color: #0000ff;\">ERROR 2002 (HY000): Can&rsquo;t connect to local MySQL server through socket &lsquo;\/tmp\/mysql.sock&rsquo; (2)<\/span><\/address>\n<p><!-- \t\t!--><\/p>\n<p><!-- \t\t!--><br \/>\nUne petite v\u00e9rification s&rsquo;impose:<\/p>\n<address><span style=\"color: #0000ff;\">daz@daz-laptop:~$ mysql &#8211;help<br \/>\nmysql\u00a0 Ver 14.14 Distrib 5.1.35, for pc-linux-gnu (i686) using readline 5.1<br \/>\n&#8230;<\/span><\/address>\n<address><span style=\"color: #0000ff;\">port\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #ff0000;\">0<\/span><br \/>\nsocket <\/span> <span style=\"color: #ff0000;\">(No default value)<\/span><\/address>\n<p><!-- \t\t!--><\/p>\n<p><!-- \t\t!--><br \/>\nLes param\u00e8tres ne sont pas prit en compte. <em>(<span style=\"text-decoration: underline;\">commentaire de l&rsquo;expert<\/span>: \u00e7a ne peut donc pas fonctionner)<\/em><\/p>\n<p><em><br \/>\n<\/em><\/p>\n<p><!-- \t\t!--><\/p>\n<p><!-- \t\t!--><br \/>\n(30 minutes <span style=\"text-decoration: line-through;\"><em>et quelques insultes<\/em><\/span> plus tard&#8230;)<\/p>\n<p><!-- \t\t!--><\/p>\n<p><!-- \t\t!--><br \/>\nEn fait, la subtilit\u00e9,\u00a0 c&rsquo;est de rajouter <strong><span style=\"text-decoration: underline;\">un saut \u00e0 la ligne<\/span><\/strong>, \u00e0 la fin de la commande<strong> !include \/home\/daz\/sandboxes\/msb_5_1_35\/my.sandbox.cnf<\/strong><\/p>\n<address><span style=\"color: #0000ff;\">daz@daz-laptop:~$ mysql &#8211;help<br \/>\nmysql\u00a0 Ver 14.14 Distrib 5.1.35, for pc-linux-gnu (i686) using readline 5.1<br \/>\n&#8230;<\/span><\/address>\n<address><span style=\"color: #0000ff;\">port <\/span> <span style=\"color: #ff0000;\"> 5135<\/span><\/address>\n<address><span style=\"color: #0000ff;\">socket <\/span> <span style=\"color: #ff0000;\">\/tmp\/mysql_sandbox5135.sock<\/span><\/address>\n<address><span style=\"color: #ff0000;\"> <\/span><\/address>\n<address> <\/address>\n<address><\/address>\n<p><!-- \t\t!--><\/p>\n<p><!-- \t\t!--><br \/>\nV\u00e9rification (au cas o\u00f9):<\/p>\n<address><span style=\"color: #0000ff;\">daz@daz-laptop:~$ mysql<\/p>\n<p>Welcome to the MySQL monitor. Commands end with ; or \\g.<br \/>\nYour MySQL connection id is 5<br \/>\nServer version: 5.1.35-log MySQL Community Server (GPL)<br \/>\nType &lsquo;help;&rsquo; or &lsquo;\\h&rsquo; for help. Type &lsquo;\\c&rsquo; to clear the current input statement.<br \/>\nmysql [localhost] {daz} ((none)) &gt;<\/p>\n<p><\/span><br \/>\n<\/address>\n<p>(<span style=\"text-decoration: underline;\">commentaire de l&rsquo;expert<\/span>: \u00e7a fonctionne !)<\/p>\n<p>\ud83d\ude42<\/p>\n<div id=\"_mcePaste\" style=\"overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;\">\n<h2>Giuseppe <span class=\"__mozilla-findbar-search\" style=\"padding: 0pt; background-color: yellow; color: black; display: inline; font-size: inherit;\">Maxia<\/span><\/h2>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>my.cnf, comme vous le savez certainement est le nom du fichier de configuration de MySQL. Vous pouvez \u00e9galement le retrouver sous le nom de my.ini en environnement MS Windows. Il permet comme son nom l&rsquo;indique de configurer votre serveur MySQL en y centralisant les options de &#8230; configuration. Le but ici n&rsquo;est pas de d\u00e9tailler la longue liste des param\u00e8tres de MySQL, la documentation officielle est (presque) bien faite, mais de mettre le \u00ab\u00a0focus\u00a0\u00bb sur la directive !include (avec un \u00ab\u00a0!\u00a0\u00bb devant).<br \/>\nCette derni\u00e8re permet d&rsquo;inclure un fichier de configuration dans un autre (sic). Autant je suis un ad\u00e8pte de la non duplication du code en d\u00e9vellopement (des require_once en PHP utilis\u00e9s avec mod\u00e9ration \u00e7a vous simplifie bien votre code), autant je ne suis pas un grand fan pour \u00e9clater la configuration de mon serveur MySQL en plusiseurs endroits. Cependant \ud83d\ude42 il faut avouerque parfois cela peut servir !<br \/>\nAlors comment \u00e7a marche ?<br \/>\nC&rsquo;est (apparemment) tr\u00e8s simple. Mon client mysql va chercher sa configuration dans diff\u00e9rents endroits (d\u00e9finit \u00e0 la compilation):<\/p>\n<p>daz@daz-laptop:~$ mysql &#8211;help<br \/>\n&#8230;<br \/>\nDefault options are read from the following files in the given order:<br \/>\n\/etc\/my.cnf \/etc\/mysql\/my.cnf \/usr\/local\/mysql\/etc\/my.cnf ~\/.my.cnf<\/p>\n<p>Mon fichier de configuration se nomme  \/etc\/mysql\/my.cnf et il contient simplement la directive !include suivit du \u00ab\u00a0vraie\u00a0\u00bb fichier de configuration:<\/p>\n<p>daz@daz-laptop:~$ cat \/etc\/mysql\/my.cnf<br \/>\n!include \/home\/daz\/sandboxes\/msb_5_1_35\/my.sandbox.cnf<\/p>\n<p>Et au final dans mon fichier de configuration (au passage j&rsquo;utilise le tr\u00e8s pratique soft d\u00e9velopp\u00e9 par Giuseppe Maxia : MySQL Sandbox):<\/p>\n<p>daz@daz-laptop:~$ cat \/home\/daz\/sandboxes\/msb_5_1_35\/my.sandbox.cnf<br \/>\n[mysql]<br \/>\nprompt=&rsquo;mysql [\\h] {\\u} (\\d) > &lsquo;<br \/>\n[client]<br \/>\nport            \t\t= 5135<br \/>\nsocket          \t\t= \/tmp\/mysql_sandbox5135.sock<br \/>\n&#8230;<\/p>\n<p>Simple non ?<br \/>\nC&rsquo;est (presque) tout, et \u00e7a marche&#8230;pas \ud83d\ude41<\/p>\n<p>daz@daz-laptop:~$ mysql<\/p>\n<p>ERROR 2002 (HY000): Can&rsquo;t connect to local MySQL server through socket &lsquo;\/tmp\/mysql.sock&rsquo; (2)<\/p>\n<p>Une petite v\u00e9rification s&rsquo;impose:<\/p>\n<p>daz@daz-laptop:~$ mysql &#8211;help<br \/>\nmysql  Ver 14.14 Distrib 5.1.35, for pc-linux-gnu (i686) using readline 5.1<br \/>\n&#8230;<\/p>\n<p>port                              0<br \/>\nsocket                            (No default value)<\/p>\n<p>Les param\u00e8tres ne sont pas prit en compte. (commentaire de l&rsquo;expert: \u00e7a ne peut donc pas fonctionner)<\/p>\n<p>(30 minutes et beaucoups d&rsquo;insultes plus tard&#8230;)<\/p>\n<p>En fait, la subtilit\u00e9,  c&rsquo;est de rajouter un saut \u00e0 la ligne, \u00e0 la fin de la commande !include \/home\/daz\/sandboxes\/msb_5_1_35\/my.sandbox.cnf<\/p>\n<p>daz@daz-laptop:~$ mysql &#8211;help<br \/>\nmysql  Ver 14.14 Distrib 5.1.35, for pc-linux-gnu (i686) using readline 5.1<br \/>\n&#8230;<\/p>\n<p>port                              5135<br \/>\nsocket                            \/tmp\/mysql_sandbox5135.sock<\/p>\n<p>daz@daz-laptop:~$ mysql<\/p>\n<p>Welcome to the MySQL monitor.  Commands end with ; or \\g.<\/p>\n<p>Your MySQL connection id is 5<\/p>\n<p>Server version: 5.1.35-log MySQL Community Server (GPL)<\/p>\n<p>Type &lsquo;help;&rsquo; or &lsquo;\\h&rsquo; for help. Type &lsquo;\\c&rsquo; to clear the current input statement.<\/p>\n<p>mysql [localhost] {daz} ((none)) > <\/p>\n<p>(commentaire de l&rsquo;expert: \u00e7a fonctionne !)<\/p>\n<p>Giuseppe Maxia<\/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":[88,8],"tags":[138,139,140],"class_list":["post-721","post","type-post","status-publish","format-standard","hentry","category-astuce","category-mysql","tag-include","tag-my-cnf","tag-my-ini"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/s9LfWW-include","jetpack-related-posts":[{"id":912,"url":"https:\/\/dasini.net\/blog\/2010\/05\/28\/audit-mysql-tmp_table_size-max_heap_table_size\/","url_meta":{"origin":721,"position":0},"title":"Audit MySQL &#8211; tmp_table_size &#038; max_heap_table_size","author":"Olivier DASINI","date":"28 mai 2010","format":false,"excerpt":"Je suis amen\u00e9 \u00e0 r\u00e9aliser r\u00e9guli\u00e8rement des audits de serveurs MySQL.Voici le premier volet d'une s\u00e9rie d'articles o\u00f9 je vais essayer de vous donner quelques points cl\u00e9s pour mieux comprendre le fonctionnement de MySQL. La configuration du serveur est un des points que je regarde, et l'une des erreurs les\u2026","rel":"","context":"Dans &quot;Astuce&quot;","block_context":{"text":"Astuce","link":"https:\/\/dasini.net\/blog\/category\/astuce\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1678,"url":"https:\/\/dasini.net\/blog\/2016\/11\/08\/deployer-un-cluster-mysql-group-replication\/","url_meta":{"origin":721,"position":1},"title":"D\u00e9ployer un cluster MySQL Group Replication","author":"Olivier DASINI","date":"8 novembre 2016","format":false,"excerpt":"Historiquement, les solutions de haute disponibilit\u00e9 (HA) avec MySQL tournent autour de la fonctionnalit\u00e9 native\u00a0MySQL Replication: replication asynchrone ou semi-synchrone. Ces modes de \u00a0replication sont tr\u00e8s largement utilis\u00e9s pour le besoins critiques d'enterprises \"at scale\" comme Facebook, Twitter, Booking.com, Uber... Aujourd'hui MySQL propose une nouvelle fonctionnalit\u00e9 native de haute disponibilit\u00e9\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\/Group_Replication_3_nodes.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2549,"url":"https:\/\/dasini.net\/blog\/2018\/08\/21\/tutoriel-deployer-mysql-5-7-innodb-cluster\/","url_meta":{"origin":721,"position":2},"title":"Tutoriel \u2013 D\u00e9ployer MySQL 5.7 InnoDB Cluster","author":"Olivier DASINI","date":"21 ao\u00fbt 2018","format":false,"excerpt":"L'un des principaux besoins de mes clients est la\u00a0Haute Disponibilit\u00e9 avec MySQL. On va voir, dans cet article, comment d\u00e9ployer et g\u00e9rer un cluster MySQL 5.7 \"from scratch\"\u00a0, sous la forme d'un tutoriel, gr\u00e2ce \u00e0 la solution HA tout en un : MySQL 5.7 InnoDB Cluster.","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"MySQL InnoDB Cluster PoC Architecture","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_InnoDB_Cluster_Production_post2.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_InnoDB_Cluster_Production_post2.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_InnoDB_Cluster_Production_post2.png?resize=525%2C300 1.5x"},"classes":[]},{"id":2587,"url":"https:\/\/dasini.net\/blog\/2018\/08\/30\/tutoriel-deployer-mysql-8-0-innodb-cluster\/","url_meta":{"origin":721,"position":3},"title":"Tutoriel \u2013 D\u00e9ployer MySQL 8.0 InnoDB Cluster","author":"Olivier DASINI","date":"30 ao\u00fbt 2018","format":false,"excerpt":"Cela fait maintenant plus d'un trimestre que MySQL 8.0 est GA (8.0.11; 8.0.12), il est temps que je t'en parle :) Dans la liste des besoins essentiels de mes clients se trouve la\u00a0Haute Disponibilit\u00e9 avec MySQL. On va voir, dans cet article, comment d\u00e9ployer et g\u00e9rer un cluster MySQL \"from\u2026","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"MySQL InnoDB Cluster Architecture","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_8.0_InnoDB_Cluster_Production_post.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_8.0_InnoDB_Cluster_Production_post.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_8.0_InnoDB_Cluster_Production_post.png?resize=525%2C300 1.5x"},"classes":[]},{"id":3299,"url":"https:\/\/dasini.net\/blog\/2019\/09\/03\/tutoriel-deployer-mysql-8-0-innodb-cluster-09-2019\/","url_meta":{"origin":721,"position":4},"title":"Tutoriel \u2013 D\u00e9ployer MySQL 8.0 InnoDB Cluster (09-2019)","author":"Olivier DASINI","date":"3 septembre 2019","format":false,"excerpt":"Cela fait maintenant 1 an que j\u2019ai \u00e9cris la v1 de ce tuto sur MySQL InnoDB Cluster et durant ce laps de temps, mes coll\u00e8gues d\u2019Oracle MySQL ont travaill\u00e9 tr\u00e8s dur pour enrichir la solution et d\u00e9velopper pas mal de nouvelles fonctionnalit\u00e9s. En fait que du bon ? \u2013 gr\u00e2ce\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":"","width":0,"height":0},"classes":[]},{"id":1044,"url":"https:\/\/dasini.net\/blog\/2011\/02\/01\/un-disque-ssd-comme-buffer-pour-innodb\/","url_meta":{"origin":721,"position":5},"title":"Un disque SSD comme buffer pour InnoDB","author":"Olivier DASINI","date":"1 f\u00e9vrier 2011","format":false,"excerpt":"MySQL, la base de donn\u00e9es open source la plus populaire, inspire toujours autant les d\u00e9veloppeurs. David, propose un patch qui permet de cr\u00e9er un buffer pool suppl\u00e9mentaire pour InnoDB, qui est stock\u00e9 sur un disque SSD ou de la m\u00e9moire flash. Cette fonctionnalit\u00e9 cr\u00e9\u00e9e un thread qui en tache 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":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/721","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=721"}],"version-history":[{"count":12,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/721\/revisions"}],"predecessor-version":[{"id":733,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/721\/revisions\/733"}],"wp:attachment":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/media?parent=721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/categories?post=721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/tags?post=721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}