2012-12-20 4 views
5

gesperrt Ich spielte mit MySQL auf OS X und ich entfernte alle 'root' Benutzer mit DROP USER. Ich habe dann einige von ihnen zurück und tat GRANT ALL on *.* to 'root'@'localhost';, und dann abgemeldet nach der Überprüfung, dass ja in der Tat konnte ich mich anmelden und ein paar privilegierte Operationen.Ich habe versehentlich Root auf MySQL

Leider war einer der privilegierten Operationen, die ich nicht versuchte, GRANT ALL on *.*. Es stellt sich heraus, dass Sie nicht die Berechtigung erhalten, mit dem Befehl GRANT ALL Berechtigungen zu erteilen. So, jetzt bin ich fest. Ich kann niemandem Privilegien geben, etwas anderes zu tun.

Zu diesem Zeitpunkt habe ich eigentlich keine Daten in MySQL. Ich könnte einfach die Installation löschen und es tun. Aber ich möchte das beheben, ohne auf dieses Extrem zurückzugreifen. Wie mache ich das?

Antwort

9

Folgendes in einer Datei speichern,:

GRANT ALL ON *.* TO 'root'@'localhost' WITH GRANT OPTION; 
FLUSH PRIVILEGES; 

Der Neustart mysqld mit der --init-file Option, die Datei angeben.

+0

Yay! Ich dachte mir das aus, aber meine Suche nach einer Antwort zeigte mir, dass niemand wirklich eine gute Antwort für dieses Szenario auf StackOverflow gegeben hatte. Ich hatte gehofft, jemand würde diese Antwort geben, weil es hier sein muss. :-) – Omnifarious

Verwandte Themen