Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/07/2014, 09:28
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: como restaurar usuario root

Cita:
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 root, pero sin password:
Código BASH:
Ver original
  1. mysql -u root
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, ten en cuenta que NO SE DEBE BORRAR JAMÁS AL ROOT.
__________________
¿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; 04/07/2014 a las 09:37