Ver Mensaje Individual
  #9 (permalink)  
Antiguo 07/07/2014, 12:45
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Herramientas y Métodos útiles

Restaurar el root luego de borrado accidental:

1) Parar el servicio mysql (Entrar en services.msc y parar el servicio).
2) Iniciar mysql desde línea de comandos con la opción –skip-grant-tables:
Código BASH:
Ver original
  1. mysqld --skip-grant-tables
3) Abrimos otra consola, y nos conectamos al mysql con el usuario que dispongamos, pero sin password:
Código BASH:
Ver original
  1. mysql -u usuario
4) Seleccionamos la base de datos mysql:
Código MySQL:
Ver original
  1. use mysql;
5) Añadimos un nuevo superusuario llamado root2, de este modo creamos un ususario con todos los privilegios, a través del cual otorgaremos de nuevo los privilegios al usuario root:
Código MySQL:
Ver original
  1. INSERT INTO user VALUES('localhost', 'root2', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
  2. 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');
6) Paramos el servicio mysqld –skip-grant-tables, podemos matarlo desde el taskmanager y arrancamos el servicio mysql de forma normal.
7) Accedemos con el nuevo superusuario (no tiene clave):
Código BASH:
Ver original
  1. mysql -u root2
8) Creamos el root nuevamente y asignamos los permisos necesarios:

Código MySQL:
Ver original
  1. mysql>INSERT INTO user VALUES('localhost', 'root', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
  2.  'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');
  3.  
  4. mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'
  5. IDENTIFIED BY 'root_password' WITH GRANT OPTION;
9) Recargamos los privilegios:
Código MySQL:
Ver original
  1. mysql>FLUSH PRIVILEGES;

10) Salimos, cargamos nuevamente, pero con el usuario root y eliminamos el usuario root2:

Código MySQL:
Ver original
  1. mysql>use mysql;
  2. mysql>delete from user where user='root2';flush privileges;

Si funciona, tener en cuenta que NO SE DEBE BORRAR JAMÁS AL ROOT NI MODIFICAR SUS PERMISOS.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 27/07/2014 a las 16:14