Beim Versuch, Remote-MySQL zum Laufen zu bringen, habe ich es irgendwie geschafft, mich mit dem Root-Konto auszusperren.
Normalerweise würde ich den MySQL-Dienst stoppen und mit neu starten /etc/init.d/mysql --init-file
, aber wenn ich das versuche, heißt es, dass das Skript in einen Upstart-Job konvertiert wurde und den Befehl "service mysql" verwendet. Leider unterstützt der service
Befehl meines Wissens die --init-file
Option nicht.
Gibt es eine andere Möglichkeit, den Host für den Root-Benutzer zurückzusetzen?
Antworten:
Stoppen Sie MySQL:
Starten Sie dann MySQL wie folgt
Zu diesem Zeitpunkt sollten Sie in der Lage sein, eine Verbindung zu MySQL (vom lokalen Computer) als Root herzustellen.
quelle
service mysqld restart --skip-grant-tables --skip-networking
. Dann, nach dem Fixieren der Wurzel ,service mysql restart
. Trotzdem +1 !!!Letztendlich wird diese Option weitergegeben
mysqld_safe
; Die Dokumentation beschreibt dies ausführlich. Möglicherweise können Sie feststellen, wie upstart MySQL aufruft, und es dann auf ähnliche Weise mit Ihrer hinzugefügten--init-file
Option manuell starten . Stellen Sie jedoch sicher, dass Sie es als der richtige Benutzer starten!Wenn Sie Debian oder Ubuntu verwenden, werden Sie wahrscheinlich feststellen, dass es einen Root-äquivalenten
debian-sys-maint
Benutzer gibt, den Sie möglicherweise vorübergehend verwenden können. Das automatisch generierte Passwort dafür finden Sie in/etc/mysql/debian.cnf
. Kann es auch auf anderen Systemen Alternativen geben? Diese Option wäre wahrscheinlich einfacher,quelle