Cambiar MySQL de partición o disco en Ubuntu 20.04

Hace pocos días instalé una Raspberry Pi 3 con Ubuntu 20.04 LTS, como sabemos, debe ser instalada en una memoria microSD para que arranque el sistema operativo. Como en mi caso requiero tener MySQL jalando, me parece que era mucha carga para estar en la microSD así que moví los datos a un disco duro SSD, además de los logs y el sitio web (nginx). Añadí pues un disco SSD por USB y lo monté en /mnt/d2 pero puede ser cualquier partición diferente del mismo disco duro o de otro.

Añadir nuevo disco

Lo primero es que conecté el nuevo disco duro (un SSD) y para verificar como lo veía la máquina:

ls -al /dev/sd*
# me muestra algo como /dev/sda  /dev/sda1

Si no apareciera sda1 probablemente no esté con partición y formateado el disco, aquí un ejemplo y si tuviese /dev/sda como disco usb

sudo fdisk /dev/sda
# borrar particiones (pulsar d, y eliminar las que haya , normalmente 1), pulsar n p enter, exit 
sudo mkfs -t ext4 /dev/sda1

Luego lo montamos

sudo mkdir /mnt/d2
sudo mount /dev/sda1 /mnt/d2

Mover MySQL (datos)

Ahora supongamos que queremos mover los datos de MySQL que normalmente están en /var/lib/mysql

sudo /etc/init.d/mysql stop
rsync -rulvtWa /var/lib/mysql /mnt/d2

Y necesitamos hacer algunos cambios, en /etc/mysql/mysql.conf.d/mysqld.cnf buscar y cambiar la línea que empieza datadir por datadir = /mnt/d2/mysql (en mi caso), luego añadir permisos para apparmor, en /etc/apparmor.d/usr.sbin.mysqld añadir las siguientes líneas

  /mnt/d2/mysql/ r,
  /mnt/d2/mysql/** rwk,
  /mnt/d2/log/mysql.err rw,
  /mnt/d2/log/mysql.log rw,
  /mnt/d2/log/mysql/ r,
  /mnt/d2/log/mysql/** rw,
# leemos los valores
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld
# reiniciamos MySQL
sudo /etc/init.d/mysql restart

Eso debería bastar. En mi caso además moví /var/log a /mnt/d2/log

cd /var/ 
rsync -rulvtWa /var/log /mnt/d2
mv log old.log
ln -s /mnt/d2/log/ ./

 Por último, añadir la entrada en /etc/fstab del disco duro para que cargue al inicio:

/dev/sda1   /mnt/d2  ext4  defaults 0 2

Eso fue todo. El servidor web si no almacena directo en /var/www/html por default (recomiendo encarecidamente que no), se puden hacer ligas simbólicas para que almacenen en algún directorio del nuevo disco en /mnt/d2/.  O de plano mover el root de nginx hacia este disco nuevo. Ahora la Raspberry tiene un mejor rendimiento ya que los logs, base de datos y scripts (php) están corriendo y almacenando en un disco SSD en lugar de la microSD.

ps. la imagen la vi en este post (que igual te indica como instalar MySQL).

+ fotos / videos

Almacenado en Ubuntu, MySQL, Linux

por Jorge Martínez Mauricio :)

blog / fotos / archivo

Cambiar MySQL de partición o disco en Ubuntu 20.04

tar.mx es un blog sobre fotografía, tecnología y otras chunches

modificado jueves 8 de julio de 2021, 11:20