{"id":159,"date":"2010-09-15T05:30:35","date_gmt":"2010-09-15T05:30:35","guid":{"rendered":"http:\/\/www.jmarior.net\/itank\/como-mover-las-bases-de-datos-mysql-a-un\/"},"modified":"2020-05-04T08:35:18","modified_gmt":"2020-05-04T07:35:18","slug":"como-mover-las-bases-de-datos-mysql-a-un","status":"publish","type":"post","link":"https:\/\/www.jmarior.net\/itank\/como-mover-las-bases-de-datos-mysql-a-un\/","title":{"rendered":"C\u00f3mo mover las bases de datos MySQL a una partici\u00f3n independiente en un nuevo disco duro"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-903\" title=\"mysql\" src=\"https:\/\/www.jmarior.net\/itank\/files\/mysql.jpg\" alt=\"mysql\" width=\"225\" height=\"164\" srcset=\"https:\/\/www.jmarior.net\/itank\/files\/mysql.jpg 399w, https:\/\/www.jmarior.net\/itank\/files\/mysql-300x218.jpg 300w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><br \/>\n<strong>C\u00f3mo mover las bases de datos MySQL a una partici\u00f3n independiente en un nuevo disco duro<\/strong><br \/>\n(migrar mySQL databases)<\/p>\n<p>0. Nueva ubicaci\u00f3n de las bases de datos<br \/>\nAntes de empezar se asume que ya tenemos una partici\u00f3n montada como \/mysql-databases<br \/>\ny cuyo propietario es el usuario mysql<br \/>\n<code>~# chown mysql:mysql \/home\/mysql-databases\/<\/code><\/p>\n<p>si quereis saber c\u00f3mo a\u00f1adir discos, particiones, formatear y montarlas en el sistema os recomiendo mi art\u00edculo<br \/>\n<a href=\"https:\/\/www.jmarior.net\/itank\/ubuntu-linux-installing-a-new-harddrive\/\">https:\/\/www.jmarior.net\/itank\/ubuntu-linux-installing-a-new-harddrive\/<\/a><\/p>\n<p>1. Algunos apuntes importantes sobre MySQL<br \/>\n# El script de inicio que inicia el demonio de MySQL es \/etc\/init.d\/mysql<br \/>\n# Los archivos de configuraci\u00f3n de MySQL est\u00e1n en el directorio \/etc\/mysql<br \/>\n# Por defecto las bases de datos est\u00e1n en \/var\/lib\/mysql\/<\/p>\n<p>Para todas las operaciones siguientes se asume que estamos utilizando el usuario <em>root<\/em><br \/>\n<code>~$ sudo su<\/code><br \/>\ntecleais vuestro password y se obtiene una sesi\u00f3n con prompt de <em>root<\/em><br \/>\n<code>~# <\/code><\/p>\n<p>2. Detener Apache (y los servicios que utilicen bases de datos) y MySQL<br \/>\n<code>~# \/etc\/init.d\/apache2 stop<\/code><br \/>\n<code>~# \/etc\/init.d\/mysqld stop<\/code><\/p>\n<p>3. Reconfigurar la localizaci\u00f3n del almac\u00e9n de bases de datos en MySQL<br \/>\nEditar el fichero<br \/>\n<code>~# nano \/etc\/mysql\/my.cnf<\/code><\/p>\n<p>y cambiar el valor de la variable <em>datadir<\/em> por nuestra nueva<br \/>\n<code>datadir= <span class=\"highlight\">\/mnt\/volume\/mysqlDBs<\/span><br \/>\n<\/code><\/p>\n<p>4. Mover las bases de datos a la nueva partici\u00f3n<br \/>\ncopiamos las BDDs<br \/>\n<code>~# cp -ax \/var\/lib\/mysql\/* \/mysql-databases<\/code><\/p>\n<p>No olvideis que las bases de datos antiguas todav\u00eda est\u00e1n en \/var\/lib\/mysql\/ conviene eliminarlas para liberar espacio.<\/p>\n<p><code>[Actualizaci\u00f3n del 26\/10\/2017]<\/code><\/p>\n<p>Con Ubuntu server 16.04 LTS el procedimiento cambia un poco. Hay que seguir <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-move-a-mysql-data-directory-to-a-new-location-on-ubuntu-16-04\">estos pasos<\/a> y sobre todo: no utilizar el root de la partici\u00f3n sino un subdirectorio.<\/p>\n<p><code>[Actualizaci\u00f3n del 03\/05\/2020]<\/code><\/p>\n<p>Confirmo que con Ubuntu Server 18.04 el procedimiento se extiende as\u00ed<\/p>\n<p>5. A\u00f1adir una regla a\u00a0<span class=\"js-about-item-abstr\">AppArmor<\/span> (<span class=\"js-about-item-abstr\">AppArmor es un programa de seguridad para Linux que permite al administrador del sistema asociar a cada programa un perfil de seguridad que restrinja las capacidades de ese programa.<\/span>)<\/p>\n<pre class=\"code-pre command prefixed\"><code># nano \/etc\/apparmor.d\/tunables\/alias<\/code><\/pre>\n<p>a\u00f1adir la l\u00ednea (incuye la coma final)<\/p>\n<pre class=\"code-pre \"><code>alias \/var\/lib\/mysql\/ -&gt; <span class=\"highlight\">\/mnt\/volume\/mysqlDBs\/<\/span>,<\/code><\/pre>\n<p>Reiniciar <span class=\"js-about-item-abstr\">AppArmor<\/span><\/p>\n<pre class=\"code-pre command prefixed\"><code># systemctl restart apparmor<\/code><\/pre>\n<p>6.\u00a0 Iniciar MySQL y Apache (y los servicios que utilicen bases de datos)<br \/>\n<code># systemctl start mysql<\/code><br \/>\n<code># systemctl start apache2<\/code><\/p>\n<p>7. Verificar el efecto del cambio<\/p>\n<p class=\"code-pre command prefixed\"><code># mysql -p<\/code><\/p>\n<p>ejecutar el comanto SQL<code><\/code><\/p>\n<p>mysql&gt;<code>select @@datadir;<br \/>\n<\/code><\/p>\n<p>y el output deber\u00eda parecerse a esto<\/p>\n<pre>+-------------------------+\r\n| @@datadir |\r\n+-------------------------+\r\n| <code><span class=\"highlight\">\/mnt\/volume\/mysqlDBs\/<\/span><\/code> |\r\n+-------------------------+\r\n1 row in set (0.00 sec)<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C\u00f3mo mover las bases de datos MySQL a una partici\u00f3n independiente en un nuevo disco duro (migrar mySQL databases) 0. Nueva ubicaci\u00f3n de las bases de datos Antes de empezar se asume que ya tenemos una partici\u00f3n montada como \/mysql-databases y cuyo propietario es el usuario mysql ~# chown mysql:mysql \/home\/mysql-databases\/ si quereis saber c\u00f3mo [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":903,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[478,874,10,54,123,869,871,55,514,1661,867,41,868],"class_list":["post-159","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-itank-ideas","tag-adir","tag-bdds","tag-command-line","tag-debian","tag-gnu-linux","tag-init","tag-installing-a-new-harddrive","tag-mysql","tag-root","tag-saber-c","tag-stop","tag-ubuntu","tag-var"],"views":9342,"_links":{"self":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/posts\/159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/comments?post=159"}],"version-history":[{"count":0,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/posts\/159\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/media\/903"}],"wp:attachment":[{"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/media?parent=159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/categories?post=159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jmarior.net\/itank\/wp-json\/wp\/v2\/tags?post=159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}