Mi sono accidentalmente bloccato fuori da MySQL cambiando l'host


8

Mentre cercavo di far funzionare MySQL in remoto, in qualche modo sono riuscito a bloccarmi con l'account root.

Normalmente, smetterei il servizio MySQL e lo riavvierei usando /etc/init.d/mysql --init-file, ma quando provo a farlo, dice che lo script è stato convertito in un processo di avvio e di usare il comando "service mysql". Sfortunatamente, per quanto ne so, il servicecomando non supporta l' --init-fileopzione.

Esiste un altro modo per ripristinare l'host per l'utente root?


Risposte:


9

Ferma MySQL:

service mysqld stop

quindi avviare MySQL in questo modo

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

A questo punto dovresti essere in grado di connetterti a mysql (dal computer locale) come root.


1
Potresti anche service mysqld restart --skip-grant-tables --skip-networking. Poi, dopo il fissaggio radice service mysql restart. Tuttavia, +1 !!!
RolandoMySQLDBA,

1

Alla fine, tale opzione verrà passata a mysqld_safe; la documentazione lo descrive in dettaglio. Potresti essere in grado di scoprire come upstart sta invocando MySQL e quindi avviarlo manualmente in modo simile con l' --init-fileopzione aggiunta . Assicurati di avviarlo come l'utente giusto, tuttavia!

Se stai usando Debian o Ubuntu, probabilmente troverai un debian-sys-maintutente equivalente a root che potresti essere in grado di usare temporaneamente; troverai la password generata automaticamente per quella in /etc/mysql/debian.cnf. Potrebbero esserci alternative anche su altri sistemi? Questa opzione sarebbe probabilmente più semplice,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.