{"id":503,"date":"2017-06-14T18:59:42","date_gmt":"2017-06-14T23:29:42","guid":{"rendered":"http:\/\/gregorgonzalez.com.ve\/blog\/?p=503"},"modified":"2017-06-14T19:34:47","modified_gmt":"2017-06-15T00:04:47","slug":"error-al-exportar-con-mysqldump-error-2013","status":"publish","type":"post","link":"https:\/\/gregorgonzalez.com.ve\/blog\/error-al-exportar-con-mysqldump-error-2013\/","title":{"rendered":"Error al exportar con mysqldump Error 2013"},"content":{"rendered":"<p>Este error tan inusual me toc\u00f3 con un servidor en producci\u00f3n, que aparentemente hab\u00eda presentado varios problemas por una falla de electricidad. La tarjeta madre sufri\u00f3 la peor parte y entonces presentaba fallos con el procesador y con la memoria. Para traspasar la de base de datos a otro servidor necesitaba sacar la informaci\u00f3n del disco duro y todav\u00eda no diagnostic\u00e1bamos el problema.<\/p>\n<p>Realizamos la habitual exportaci\u00f3n a trav\u00e9s de mysqldump, la cual no hab\u00edamos notado del error porque us\u00e1bamos un script bash que no lo mostraba al momento, nos dimos cuenta fue porque el archivo SQL generado no ten\u00eda el tama\u00f1o adecuado, de una base de datos unos 600mb solo se logr\u00f3 exportar 80mb. Entonces al correr directamente el c\u00f3digo para el dump fue que aparec\u00eda el mensaje de error:<\/p>\n<p><strong>\u00a0\u00abmysqldump: Error 2013: Lost connection to MySQL server during query\u00bb<\/strong><\/p>\n<p>Este error es poco com\u00fan y puede ocurrir cuando se satura la memoria, a veces cuando no tiene espacio en disco pero para ello env\u00eda otro mensaje por falta de espacio. Sab\u00edamos que no pod\u00eda ser por memoria, ya que el servidor manejaba 16gb de RAM, suficiente para cualquier aplicaci\u00f3n, el disco estaba pr\u00e1cticamente vac\u00edo y como solo ten\u00edamos una aplicaci\u00f3n, no hab\u00eda ning\u00fan proceso que saturara la memoria. Era por el fallo el\u00e9ctrico porque recib\u00edamos muchos errores tanto de memoria procesador y se reiniciaba el servidor autom\u00e1ticamente cada 5 minutos.<\/p>\n<p>Luego de un arduo trabajo pudimos exportar correctamente luego de realizar los siguientes intentos:<\/p>\n<p>Primero probamos con el habitual comando:<\/p>\n<pre class=\"lang:default decode:true\">mysqldump --user=TU_USUARIO --password=TU_PASSWORD --opt --skip-add-drop-table --databases TU_BD > \/TU_BD.sql<\/pre>\n<p>El cual nos arrojaba el error anterior, siempre se detenia alrededor de los 80mb.<\/p>\n<p>Para agilizar el exportado, es recomendable agregar la opci\u00f3n spkip-extended-insert, la cual se utiliza para volcar la informaci\u00f3n en varios INSERT por l\u00ednea y as\u00ed evitar un solo insert gigantesco por tabla que es lo com\u00fan, en este caso no nos funcion\u00f3, no era ese el problema.<\/p>\n<pre class=\"\">mysqldump --user=TU_USUARIO --password=TU_PASSWORD --spkip-extended-insert --opt --skip-add-drop-table --databases TU_BD > \/TU_BD.sql<\/pre>\n<p>Otra cuesti\u00f3n es que el &#8211;opt habilita las opciones para mayor velocidad, &#8211;quick y el extended-insert y tambi\u00e9n est\u00e1n activas por defecto, se cambi\u00f3 en el script y se agreg\u00f3 otras dos opciones &#8211;lock-tables=false para evitar m\u00e1s consumo de recursos (no es recomendable si est\u00e1 en uso la bd), aparte se agreg\u00f3 &#8211;max_allowed_packet=128M \u00a0para incrementar la memoria permitida por paquete:<\/p>\n<pre class=\"lang:default decode:true \">mysqldump --user=TU_USUARIO --password=TU_PASSWORD --opt --skip-add-drop-table --max_allowed_packet=128M --skip-quick --lock-tables=false --databases TU_BD > \/TU_BD.sql<\/pre>\n<p>Ese ser\u00eda el definitivo y como ten\u00edamos problemas generales por lo inestable del sistema tuvimos que agregarlo en la configuraci\u00f3n de mysql <strong>\/etc\/mysql\/my.cnf<\/strong> y aunque con reiniciar el servicio, ya toma la configuraci\u00f3n, tuvimos que reiniciar el servidor para evitar inconvenientes con la memoria.<\/p>\n<p>Agregamos la opci\u00f3n bajo [mysqld], puede ser en megas 128M, o gigas 1G, tomando en cuenta que el minimo y m\u00e1ximo var\u00eda por versi\u00f3n de mysql <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.6\/en\/server-system-variables.html#sysvar_max_allowed_packet\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.mysql.com\/doc\/refman\/5.6\/en\/server-system-variables.html#sysvar_max_allowed_packet<\/a> y lo m\u00e1ximo es 1GB, el cual no necesitamos pero si es una emergencia de una sola ocasi\u00f3n puedes intentarlo.<\/p>\n<p><strong>[mysqld]<\/strong><\/p>\n<p><strong>max_allowed_packet = 128M<\/strong><\/p>\n<p>Si existe la opci\u00f3n [mysqldump], tambi\u00e9n debe agregarse all\u00ed:<\/p>\n<p><strong>[mysqldump]<\/strong><\/p>\n<p><strong>max_allowed_packet = 128M<\/strong><\/p>\n<p>Para ser m\u00e1s precisos puedes usar el monto del enlace que est\u00e1 en bytes (1GB) en caso de emergencia:<\/p>\n<p><strong>max_allowed_packet = 1073741824<\/strong><\/p>\n<p>Luego de esto pudimos exportar con cualquiera de los script mencionados arriba. Esto tambi\u00e9n sirve para los errores de \u00abPacket Too Large\u00bb y el otro \u00abMySQL server has gone away\u00bb.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Este error tan inusual me toc\u00f3 con un servidor en producci\u00f3n, que aparentemente hab\u00eda presentado varios problemas por una falla de electricidad. La tarjeta madre sufri\u00f3 la peor parte y entonces presentaba fallos con el procesador y con la memoria. Para traspasar la de base de datos a otro servidor necesitaba sacar la informaci\u00f3n del [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":457,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[54],"tags":[178,193,177,194],"_links":{"self":[{"href":"https:\/\/gregorgonzalez.com.ve\/blog\/wp-json\/wp\/v2\/posts\/503"}],"collection":[{"href":"https:\/\/gregorgonzalez.com.ve\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gregorgonzalez.com.ve\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gregorgonzalez.com.ve\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gregorgonzalez.com.ve\/blog\/wp-json\/wp\/v2\/comments?post=503"}],"version-history":[{"count":0,"href":"https:\/\/gregorgonzalez.com.ve\/blog\/wp-json\/wp\/v2\/posts\/503\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gregorgonzalez.com.ve\/blog\/wp-json\/wp\/v2\/media\/457"}],"wp:attachment":[{"href":"https:\/\/gregorgonzalez.com.ve\/blog\/wp-json\/wp\/v2\/media?parent=503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gregorgonzalez.com.ve\/blog\/wp-json\/wp\/v2\/categories?post=503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gregorgonzalez.com.ve\/blog\/wp-json\/wp\/v2\/tags?post=503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}