Accidentalmente me bloqueé de MySQL cambiando el host

8

Mientras intentaba que MySQL funcionara de manera remota, de alguna manera logré bloquearme con la cuenta raíz.

Normalmente, detendría el servicio MySQL y lo reiniciaría usando /etc/init.d/mysql --init-file, pero cuando trato de hacer eso, dice que el script se ha convertido en un trabajo inicial y para usar el comando "service mysql". Desafortunadamente, que yo sepa, el servicecomando no admite la --init-fileopción.

¿Hay alguna otra forma de restablecer el host para el usuario root?

nickjyc
fuente

Respuestas:

9

Detener MySQL:

service mysqld stop

luego inicie MySQL así

mysqld_safe --skip-grant-tables --skip-networking

En este punto, debería poder conectarse a mysql (desde la máquina local) como root.

Chad Feller
fuente
1
Tú también podrías service mysqld restart --skip-grant-tables --skip-networking. Entonces, después de la fijación de la raíz, service mysql restart. Sin embargo, +1 !!!
RolandoMySQLDBA
1

Finalmente, esa opción se pasará a mysqld_safe; la documentación describe esto en detalle. Es posible que pueda descubrir cómo está invocando MySQL, y luego iniciarlo manualmente de manera similar con su --init-fileopción agregada . ¡Sin embargo, asegúrese de iniciarlo como el usuario correcto!

Si está usando Debian o Ubuntu, probablemente encontrará que hay un debian-sys-maintusuario equivalente a la raíz que puede usar temporalmente; encontrará la contraseña generada automáticamente para eso en /etc/mysql/debian.cnf. ¿Puede haber alternativas en otros sistemas también? Esta opción probablemente sería más fácil,

dom
fuente