{"id":301,"date":"2012-01-18T08:51:19","date_gmt":"2012-01-18T11:51:19","guid":{"rendered":"http:\/\/wagnerbianchi.com\/blog\/?p=301"},"modified":"2012-01-18T08:51:19","modified_gmt":"2012-01-18T11:51:19","slug":"mysql-server-has-gone-away","status":"publish","type":"post","link":"http:\/\/wagnerbianchi.com\/blog\/?p=301","title":{"rendered":"MySQL server has gone away"},"content":{"rendered":"<p>Esta \u00e9 uma mensagem de erro que acontece em muitos dos servidores de bancos de dados MySQL instalados a\u00ed pelo mundo e muitos dos usu\u00e1rios se v\u00eaem em uma situa\u00e7\u00e3o que talvez n\u00e3o tenha solu\u00e7\u00e3o. H\u00e1 bastante tempo eu tenho respondido \u00e0 f\u00f3runs de discuss\u00e3o que tratam do tema que \u00e9 simples de resolver. A minha esperan\u00e7a \u00e9 que o google indexe logo o t\u00edtulo deste post para que tal informa\u00e7\u00e3o de como se livrar da mensagem MySQL server has gone away em meio \u00e0 opera\u00e7\u00f5es de carga de dados, restore de um banco ou mesmo, em meio \u00e0s intera\u00e7\u00f5es do aplica\u00e7\u00e3o com o servidor MySQL.<\/p>\n<p>Existe uma vari\u00e1vel de ambiente no MySQL que controla este comportamento e tamb\u00e9m, o tamanho m\u00e1ximo dos pacotes que podem trafegar nas threads do MySQL. Voc\u00ea deve saber que cada thread \u00e9 um conex\u00e3o e voc\u00ea poder\u00e1 ter informa\u00e7\u00f5es sobre elas atrav\u00e9s do comando SHOW PROCESSLIST. O tamanho inicial \u00e9 configurado na vari\u00e1vel net_buffer_lentgh e o tamanho m\u00e1ximo \u00e9 configurado em max_allowed_packet &#8211; esta vari\u00e1vel que poder\u00e1 ter um valor pequeno para o sistema que j\u00e1 se tornou grande.<\/p>\n<p>Por exemplo, no in\u00edcio deste ano iniciei os trabalhos com um cliente no Brasil e precisamos na quele momento fazer a carga de grande de quantidade de dados em XML, que \u00e9 um tipo de log que o cliente armazena para devidos fins. Ao iniciar as cargas com os arquivos de mais ou menos 300GB por vez, nos deparamos com o &#8220;MySQL server has gone away&#8221; ou em Portugu\u00eas, &#8220;O MySQL foi embora&#8221;. N\u00e3o \u00e9 para mim uma mensagem e nem um comportamento novo, e foi somente fazer alguns ajustes no my.cnf, mais precisamente, na vari\u00e1vel max_allowed_packet e tudo se resolveu:<\/p>\n<p><code>[root@motoserver189 ~]# mysql -u root -p imoin_package &lt; \/files\/log1765390.dump<br \/>\nERROR 2006 (HY000) at line 59: MySQL server has gone away<\/code><\/p>\n<p># Alteramos o valor de max_allowed_packet para comportar pacotes maiores nas threads do MySQL<\/p>\n<p><code>[mysqld]<br \/>\nmax_allowed_packet=1024M<\/code><\/p>\n<p># Reiniciamos o servidor de bancos de dados MySQL para que as altera\u00e7\u00f5es passam a valer<\/p>\n<p><code>[root@motoserver189 ~]# service mysql restart<br \/>\nStarting MySQL....................................... SUCCESS!<\/code><\/p>\n<p># Tentamos novamente e como agora vai dar tudo certo, embrulhamos o comando de restore no nohup que passa a execu\u00e7\u00e3o do processo para o processo do Linux para se caso nossa conex\u00e3o com o servidor seja fechada, o processo de restore n\u00e3o sofrer\u00e1 nenhum impacto.<\/p>\n<p><code>[root@motoserver189 ~]# nohup mysql -u root -p imoin_package &lt; \/files\/log1765390.dump &amp;<br \/>\n[1] 26303<br \/>\n[root@bd14 mysql]# nohup: appending output to `nohup.out'<\/code><\/p>\n<p>At\u00e9&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta \u00e9 uma mensagem de erro que acontece em muitos dos servidores de bancos de dados MySQL instalados a\u00ed pelo mundo e muitos dos usu\u00e1rios se v\u00eaem em uma situa\u00e7\u00e3o que talvez n\u00e3o tenha solu\u00e7\u00e3o. H\u00e1 bastante tempo eu tenho respondido \u00e0 f\u00f3runs de discuss\u00e3o que tratam do tema que \u00e9 simples de resolver. A [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[17,1],"tags":[],"_links":{"self":[{"href":"http:\/\/wagnerbianchi.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/301"}],"collection":[{"href":"http:\/\/wagnerbianchi.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/wagnerbianchi.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/wagnerbianchi.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/wagnerbianchi.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=301"}],"version-history":[{"count":3,"href":"http:\/\/wagnerbianchi.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/301\/revisions"}],"predecessor-version":[{"id":304,"href":"http:\/\/wagnerbianchi.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/301\/revisions\/304"}],"wp:attachment":[{"href":"http:\/\/wagnerbianchi.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/wagnerbianchi.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=301"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/wagnerbianchi.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}