Ich habe mich versehentlich durch Ändern des Hosts von MySQL ausgeschlossen

8

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 serviceBefehl meines Wissens die --init-fileOption nicht.

Gibt es eine andere Möglichkeit, den Host für den Root-Benutzer zurückzusetzen?

nickjyc
quelle

Antworten:

9

Stoppen Sie MySQL:

service mysqld stop

Starten Sie dann MySQL wie folgt

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

Zu diesem Zeitpunkt sollten Sie in der Lage sein, eine Verbindung zu MySQL (vom lokalen Computer) als Root herzustellen.

Chad Feller
quelle
1
Das könntest du auch service mysqld restart --skip-grant-tables --skip-networking. Dann, nach dem Fixieren der Wurzel , service mysql restart. Trotzdem +1 !!!
RolandoMySQLDBA
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-fileOption 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-maintBenutzer 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,

dom
quelle