Uso de mysqldump para descarga de bases de datos via SSH
Actualizado hace 4 semanas
Para poder ejecutar mysqldump desde la terminal, y descargar un respaldo de una de nuestras bases de datos, debemos usar el selector --no-tablespaces.
Por ejemplo:
mysqldump --no-tablespaces -u dbuser -p dbname > backup.sql
Reemplazando dbuser por el usuario MySQL con permisos de acceso a la base, y dbname por el nombre de nuestra base de datos.
Por que debemos usar no-tablespaces
Si ejecutamos el comando sin no-tablespaces, obtendremos el siguiente error:
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces
El permiso PROCESS fue eliminado de nuestros planes de hosting por motivos de seguridad.
En MySQL y MariaDB, PROCESS es un privilegio global y no aislado para una única base de datos. Si permiten éste permiso, como por ejemplo describe éste articulo de cPanel, el usuario podrá visibilizar ejecuciones en todo el servidor, usando comandos como SHOW PROCESSLIST.
Esto podría poner en riesgo los datos de otros clientes en el mismo servidor, en caso de que una consulta a la base de datos contenga contraseñas en texto, APIs o cualquier otro dato sensible.
Tablespaces es utilizado en configuraciones avanzadas de InnoDB, que no son necesarias para descargar bases de datos tipicas de WordPress, Drupal o a