CentOS 7 reset root password MySQL 5.7

Si habéis llegado aquí estáis en el lugar correcto dónde podréis restaurar la contraseña de root en MySQL 5.7. Internet está plagado de tutoriales dónde te indican cómo hacer esto pero ninguno está actualizado a las últimas versiones de CentOS y MySQL, además por todos es conocido que el soporte a MySQL por parte de la comunidad Open Source ha menguado desde su compra por Oracle.

2

¿Que cambia en CentOS 7 y MySQL 5.7?

  1. CentOS 7 incorpora systemd (Sistema y administrador de servicios para Linux, compatible con scripts de inicio SysV) y su herramienta de administración systemctl. ¿en que afecta esto? Pues que el script mysql_safe no está disponible (no se instala) en estos sistemas y hay que utilizar otras alternativas y gestionar mysql server community desde systemd.
  2. La tabla de usuarios en MySQL 5.7 ya no tiene campo password ahora es authentication_string.

Restaurar contraseña root en MySQL 5.7 y CentOS 7

  1. systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
  2. systemctl restart mysqld
  3. mysql -u root mysql
  4. update user set authentication_string=password('NUEVO_PASSWORD') where user='root';
  5. flush privileges;
  6. exit;
  7. systemctl unset-environment MYSQLD_OPTS
  8. systemctl restart mysqld

Todos estos comandos deben ser ejecutados como root.

NOTA: MySQL 5.7 viene por defecto con el plugin validate_password activado de manera que la contraseña debe cumplir un mínimo de fortaleza y contener mayúsculas, minúsculas, símbolos y números para que sea válida.

NOTA: En CentOS 7 al instalar MySQL me eliminó automáticamente MariaDB y sin yo introducir ningún dato perecía tener contraseña root con lo cual tuve que utilizar estos pasos para poder acceder a MySQL por primera vez.

Comentarios