Page 1 of 2

User "root" augesperrt ( MySQL Error 1226 ) *gelös

PostPosted: 12. August 2006 20:34
by media-konzept
Hallo zusammen,

bin neu hier und Newbie....ich habe folgendes Problem das ich einfach nicht hinkriege...

Ich habe den User "root" leider ausgesperrt weil ich die "max_questions" resource versehentlich auf 100 gestellt habe....nun habe ich das Problem dass der Hauptuser zuwenig resourcen hat um nur annähernd etwas auszuführen, jede Stunde kann ich mich gerade einmal einloggen und das wars dann auch...sobald ich etwas verändern will kommt wieder die Fehlermeldung dass die Limite erreicht ist.

Nun habe ich leider keinen weiteren Benutzer mit dem ich mich anmelden kann...einen zweiten Benutzer "pma" hat leider keine Administratoren Rechte....

wie krieg ich das wieder hin?

Die Datenbank ist mir sehr wichtig, da verschiedene Websites mit einem CMS System jetzt nicht mehr laufen, weil der Benutzer root limitiert ist.

Ich habe im SQL Forum bereits einige Tips ausprobiert, diese beziehen sich jedoch immer auf irgendeinen User und nicht auf den root und gehen davon aus, das ein User mit Berechtigung vorhanden ist.

Kann die User Tabelle irgendwie auf "default" gestellt werden ( löschen etc) damit ich wenigstens den Root Account neu erstellen kann?

herzlicher Gruss
Felix Kuster aus der Schweiz

Lösung gefunden

PostPosted: 12. August 2006 21:49
by media-konzept
ok...mein kleines Problem habe ich folgendermassen wieder hinbekommen.....

1. Apache Server stoppen....

2. MySQL Server stoppen....

3. MySQL Server wieder starten..

4. Mit der Console als "root" anmelden (mysql -u -root -p) Passwort eingeben

5. auf table mysql wechseln ( use mysql; )

6. Privilege reseten ( GRANT USAGE ON *.* TO 'root'@'localhost' WITH MAX_QUERIES_PER_HOUR 0; )

7. Console beenden

8. Apache wieder starten....

so hats geklappt....Fazit: nicht am root rumschrauben

cheers und gute Nacht
Felix

PostPosted: 12. August 2006 22:24
by Wiedmann
Damit das nochmal jemand helfen kann, solltest du auch den Punkt mit der eigentlichen Reparatur noch posten. Den hast du leider vergessen ;-)

PostPosted: 13. August 2006 03:07
by media-konzept
Wiedmann wrote:Damit das nochmal jemand helfen kann, solltest du auch den Punkt mit der eigentlichen Reparatur noch posten. Den hast du leider vergessen ;-)


die eigentliche Reparatur findet beim reseten der Privilegien statt.....FLUSH PRIVILEGES setzt den angemeldeten User wieder zurück...so habe ich es zumindest verstanden. Weiterführende Informationen findet man hier :

http://dev.mysql.com/doc/refman/5.1/en/user-resources.html

Problematisch ist nur wenn die max_questions resource zu knapp ist....deswegen habe ich den apache gestoppt, und den sql-dienst gestoppt und wieder gestartet, der Zähler stellt dann auf Null zurück und es war genügend Zeit die Befehle in der Konsole auszuführen.

Hoffe das hilft weiter
Gruss Felix

PostPosted: 13. August 2006 04:57
by Wiedmann
die eigentliche Reparatur findet beim reseten der Privilegien statt.....FLUSH PRIVILEGES setzt den angemeldeten User wieder zurück...so habe ich es zumindest verstanden.

Diese Antwort hab ich fast befürchtet... "FLUSH PRIVILEGES" resettet nicht die Priviliegien, es liest nur die entsprechenden Tabellen neu ein. Also das selbe was bei einem Serverneustart passiert.

und den sql-dienst gestoppt und wieder gestartet, der Zähler stellt dann auf Null zurück und es war genügend Zeit die Befehle in der Konsole auszuführen.

Mit "die Befehle" meinst du also nur:
Code: Select all
USE `mysql`;
FLUSH PRIVILEGES;

Wie du schon geschrieben hast, wurde durch den Serverneustart die Zähler auf Null zurückgestellt. Genau das hast du dann mit "FLUSH PRIVILEGES" noch einmal gemacht. Was dein Problem angeht, macht diese Anweisung nicht mehr. (BTW: Das "USE `mysql`" kannst du dir hier sparen.)

Ich habe den User "root" leider ausgesperrt weil ich die "max_questions" resource versehentlich auf 100 gestellt habe

Um dieses Rückgängig zu machen, musst du in der Konsole nur dieses eine Kommando ausführen:
Code: Select all
GRANT USAGE ON *.* TO 'root'@'localhost' WITH MAX_QUERIES_PER_HOUR 0;

User Root ausgesperrt...

PostPosted: 17. August 2006 12:32
by media-konzept
Du hast natürlich recht...ich war wohl um 4 Uhr morgens nicht mehr Herr meiner Sinne...und habe die Dinge verwechselt. Deine Anmerkungen sind natürlich korrekt...

im Thread bereits abgeändert

Gruss aus der Schweiz
Felix

PostPosted: 28. July 2008 20:00
by ronpepa
Was ist CONSOLE????

PostPosted: 28. July 2008 21:07
by glitzi85
ronpepa wrote:Was ist CONSOLE????

Da du ja anscheinend Windows benutzt: Die Eingabeaufforderung, zu erreichen mit Start -> Ausführen -> cmd eingeben und OK klicken.

Um dann noch die Schritte von Felix auszuführen musst du in den MySQL-Ordner innerhalb vom XAMPP-Ordner wechseln und die Befehle ausführen.

mfg glitzi

PostPosted: 29. July 2008 16:05
by ronpepa
OH MAnn ich krigs einfach net HIN :-(((( :cry:
Kann mir mal jemmand das etwas einfacher Beschreiben bitte .
in Welchen Ordner Welches Befehl.
Danke

PostPosted: 29. July 2008 17:06
by deepsurfer
DOSbox öffnen

START ==> AUSFÜHREN --> cmd
es öffnet sich ein Fenster mit schwarzem Hintergrund


cd c:\xampp\mysql\bin

mysql xxxxyyyyyzzzz (xxxyyzz = Befehlsfolgen)

PostPosted: 29. July 2008 19:54
by ronpepa
deepsurfer wrote:DOSbox öffnen

START ==> AUSFÜHREN --> cmd
es öffnet sich ein Fenster mit schwarzem Hintergrund


cd c:\xampp\mysql\bin

mysql xxxxyyyyyzzzz (xxxyyzz = Befehlsfolgen)

Soweit war ich auch schon aber , wennich Enter drück kommt
"Der Befehl "Grant"ist entwder falsch geschriben oder konnte nicht gefunden werden."
Das schreibt das Comandofenster nac dem Enter??

PostPosted: 30. July 2008 00:38
by glitzi85
Also nochmal:

Start -> Ausführen -> cmd (Enter)

Dann erscheint die schwarze DOS-Box.

Als erstes
Code: Select all
cd c:\xampp\mysql\bin

ausführen (Pfad muss natürlich angepasst werden, falls du XAMPP wo anders installiert hast),

dann
Code: Select all
mysql -u root -p

ausführen und das MySQL-Passwort von root eingeben.

Jetzt solltest du eine Wilkommensnachricht von deinem MySQL-Server erhalten haben und die aktuelle Zeile sollte jetzt mit mysql> beginnen. Ist dem so, dann kannst du jetzt munter SQL-Statements an die Datenbank absetzen. Wichtig: Alle SQL-Statements müssen mit einem Semikolon ( ; ) abgeschlossen werden!

mfg glitzi

PostPosted: 30. July 2008 19:49
by ronpepa
Damn !! wo find ich nde Pass??

PostPosted: 30. July 2008 22:13
by glitzi85
1. Formuliere bitte ganze Sätze mit wenigstens einem Hauch von Rechtschreibung
2. Solltest du der deutschen Sprache nicht mächtig sein, so können wir uns auch gerne in Englisch weiter unterhalten
3. Geplenke siehe Punkt 1
4. Multiple exclamation marks are a sure sign of a diseased mind - Terry Pratchet

Zu deiner Frage: Sofern du noch kein Passwort für den MySQL-Benutzer root vergeben hast kannst du das -p einfach weglassen.

mfg glitzi

PostPosted: 31. July 2008 06:25
by ronpepa
Nachdem ich in der der Console "mysql -u -root " eingebe kommt fehlermeldung
Code: Select all
ERROR 1045 (28000): Access denied for user '-root'@'localhost' (using password NO:)

wenn ich in der Console "mysql -u -root -p" eingebe kommt fehlermeldung
Code: Select all
ERROR 1045 (28000): Access denied for user '-root'@'localhost' (using password YES:)


Wat NUN??