Cambiar contraseña base de datos mysql con SSH

Cambiando la Contraseña de una Base de Datos MySQL a través de SSH

Entendiendo el Proceso:

Cuando hablamos de cambiar la contraseña de una base de datos MySQL a través de SSH, estamos conectándonos de forma remota a un servidor donde reside la base de datos y ejecutando comandos directamente en su terminal. Esto nos permite modificar la configuración de la base de datos sin necesidad de una interfaz gráfica.

Pasos Detallados:

  1. Conexión SSH:
    • Abre tu terminal: Utiliza un cliente SSH como PuTTY (Windows) o el terminal integrado en sistemas Linux/macOS.
    • Ingresa el comando:Bashssh usuario@tu_servidor_ip
      • Reemplaza:
        • usuario: Con el nombre de usuario con el que tienes acceso al servidor.
        • tu_servidor_ip: Con la dirección IP o nombre de dominio de tu servidor.
    • Autenticación: Introduce la contraseña asociada a tu usuario.
  2. Acceso a la Base de Datos MySQL:
    • Inicia sesión en MySQL:Bashmysql -u root -p
      • Reemplaza:
        • root: Con el nombre de usuario de la base de datos (generalmente ‘root’).
      • Introduce la contraseña actual: Cuando se te solicite.
  3. Cambio de Contraseña:
    • Selecciona la base de datos: Si tienes múltiples bases de datos, especifica la que quieres modificar:SQLuse tu_base_de_datos;
    • Modifica la contraseña:SQLSET PASSWORD FOR 'nombre_usuario'@'localhost' = PASSWORD('nueva_contraseña');
      • Reemplaza:
        • nombre_usuario: Con el nombre del usuario cuya contraseña deseas cambiar.
        • localhost: Indica que la conexión es local. Puedes cambiarlo por un host remoto si es necesario.
        • nueva_contraseña: Por la nueva contraseña que deseas asignar.
  4. Recarga los privilegios:SQLFLUSH PRIVILEGES; Este comando asegura que los cambios realizados se apliquen inmediatamente.
  5. Salir de MySQL:SQLexit;

Ejemplo Completo:

Suponiendo que deseas cambiar la contraseña del usuario ‘mi_usuario’ en la base de datos ‘mi_base_datos’ a ‘contraseña_nueva’:

Bash

ssh usuario@tu_servidor_ip
mysql -u root -p
use mi_base_datos;
SET PASSWORD FOR 'mi_usuario'@'localhost' = PASSWORD('contraseña_nueva');
FLUSH PRIVILEGES;
exit;

Consideraciones Adicionales:

  • Seguridad:
    • Evita usar contraseñas débiles.
    • Considera utilizar un gestor de contraseñas para almacenar de forma segura tus credenciales.
    • Limita los privilegios de los usuarios de la base de datos.
  • Usuarios Remotos:
    • Si quieres cambiar la contraseña de un usuario que se conecta desde un host remoto, reemplaza ‘localhost’ por el nombre del host remoto en el comando SET PASSWORD.
  • Contraseña Perdida:
    • Si olvidas la contraseña de ‘root’, puedes iniciar MySQL en modo sin autenticación para restablecerla. Sin embargo, esta acción compromete la seguridad de tu base de datos.

Recomendaciones:

  • Automatización: Para realizar este proceso de forma más eficiente, puedes crear scripts que contengan los comandos necesarios.
  • Seguridad: Prioriza la seguridad de tu base de datos. Evita exponerla a ataques cambiando las contraseñas regularmente y siguiendo buenas prácticas de seguridad.

Recursos Adicionales: