# [MySQL] Rompí mi instalación y no puedo loguearme. (cerrado)

## Inodoro_Pereyra

Gente, a ver si algún experto me saca del paso, que MySQL no es lo mío.

Estaba instalando phpsyslogng en un servidor que recibe logs de otros tantos para hacer mas cómoda la lectura de los mismos. Este servidor está en producción, no puedo pararlo, y tiene instalado un MySQL server que hasta mi metida de pata funcionaba a la perfección.

La cuestión es que después de importar la base de datos para phpsyslogng en una base nueva que creé desde webmin, ya no puedo loguearme, ni como root, ni como usuario no privilegiado:

```
~ # mysql -u root -p 

Enter password: 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
```

Obviamente, ninguna de las aplicaciones tiene acceso a las bases de datos tampoco. Pensando que se me habría perdido la contraseña de root (tampoco he tocado el archivo my.cnf para nada) he probado iniciar el server en modo seguro para reestablecerla usando:

```
mysqld --skip-grant-tables
```

Y una vez iniciado el servicio:

```
mysql> update user set Password=PASSWORD('mipassword') where user='root'; 

Query OK, 0 rows affected (0.02 sec) 

Rows matched: 1 Changed: 0 Warnings: 0
```

Y eso es lo que me parece sumamente extraño, 0 rows affected, 0 changed...

Mato el servicio, lo vuelvo a levantar y otra vez, no tengo acceso como ninguno de los usuarios.

No tengo ni la menor idea de que es lo que puede estar fallando, ni que fué lo que lo originó pero alguna de las dos cosas, crear una base de datos desde webmin o imprtar la base de datos para phpsyslogng me rompió dentro de la base mysql alguna tabla que evita que el sistema de autenticación funcione, o algo por el estilo.

Provisoriamente y hasta tanto lo pueda solucionar, estoy corriendo el servidor iniciado con --skip-grant-tables y todo funciona pero implica una gran brecha para la seguridad del mismo y necesito solucionarlo cuanto antes, así que si alguno me puede dar una manito, desde ya estaré muy agradecido.

Salud!

----------

## edgar_uriel84

No sé que pudo pasarle a ese MySQL, tal vez Oracle siguió el ejemplo de Sony y ya quito esa funcionalidad. XD

Creo que no te cambia el password porque nunca seleccionaste la base de datos o si??????? es decir:

```
#mysql

mysql > UPDATE mysql.user SET Password=PASSWORD('Tu password') 
```

Tengo entendido que con la opción  --skip-grant-tables cuando ejecutas mysql entras "como root de MySQL". Después del update según recuerdo debes ejecutar "FLUSH PRIVILEGES;" de otro modo no veras los cambios inmediatamente (por eso se usa GRANT para esos asuntos), también puedes intentar crear un nuevo usuario.

Como ultima opción lo que yo haría es ver la "integridad" de la Base de Datos mysql, tal vez ya no es legible. En dado caso, yo me aventuraría a borrar esa base de datos y sustituirla por la de un MySQL recién instalado y organizar tus usuarios de nuevo.

----------

## Inodoro_Pereyra

Gracias Edgar, tu comentario me puso sobre la pista. Importé la base mysql de una instalación nueva y creé de nuevo todos los usuarios que por suerte solo eran 7 y ya está todo funcionando como debería. Esto me enseña que hay que respaldar las bases del servidor MySQL antes de hacer nada  :Very Happy: 

Salud!

----------

