PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Root-Problem...



Alfons2
14.09.08, 18:25
Hallo erstmal...

Ich hab folgendes Problem. Ich habe ein MySQL Server auf einem Linux Server.
Dort habe ich den User "Root". Ist alles logisch bis jetzt. Nur jetzt fehlen dem Root unter den Datenbanken "information_schema" und "mysql" ein paar wichtige Rechte. Gibt es irgendeine Möglichkeit die Rechte zurück zu setzen. Passwort weiß ich noch alles.

Denn sonst kann ich an der DB nicht arbeiten und das is doof.

MfG Alfons

marce
15.09.08, 06:10
Starte die MySQL ohne Rechteverwaltung und setze dann die Rechte entsprechend.

Alternativ: DBs komplett löschen, neu initialisieren (gibt's normalerweise bei jeder Installation eine Script dafür) und danach evtl. benötigte Daten wieder importieren.

Alfons2
15.09.08, 10:56
Hab ich probiert zuerst mit

/etc/init.d/mysql stop

und dann mit :
/etc/init.d/mysql start --skip-grant-tables

Hat gut funktioniert, nur jetzt was muss ich jetzt machen um das alles zurückzusetzen. Ich hab versucht nen SQL Befehl mit Update zu machen um die rechte dort zurecht zu biegen aber es komm immer ne Fehlermeldung Acces Denied. Weißt du vielleicht nen Rat?

marce
15.09.08, 10:58
abgesehen von dem, was ich oben schon schrieb?

Und: ohne konkrete Daten (Befehle, Tabelleninhalte, exakte Fehlermeldung, evtl. Logeinträge) - nein.

Alfons2
15.09.08, 11:18
Gut also probieren wir es nochmal. Irgendwie fehlen dem Root die Rechte.
Ich bin soweit gekommen das ich sehen konnte das in den Tabellen wie z.B. "TABLE_PRIVILEGE" in der Datenbank "information_schema" oder andere solche tabellen.
Wenn du ein MySQL Server gerade zu hand hast und in diese besagte Datenbank schaust müsste bei dir ganz rechts unter der Spalte "is_grantable" überall ein YES stehen. Bei mir steht da No. Jetzt müsste ich irgendwie Das No in ein Yes umwandeln.

Beispiel Bild (http://picupload.de/f70db)

Wie man auf dem Bild sieht fehlen die Rechte wie Select/Insert/Update und sowas. Das müsste ich ändern ich glaub das ist aber nicht die einziege Tabelle wo das so ist.

marce
15.09.08, 11:22
hm, bei mir taucht root in den von Dir angegebenen Tabellen nicht auf.

-> Das was Du gepostet hast ist - nett. Aber nicht exakt.

-> nächster Versuch.

Alfons2
15.09.08, 11:58
Exakt hm...

Gut ich schilder mal den Verlauf...

Also ich connecte mit dem MySQL Administrator 1.1.9 auf den Server. Doch wenn ich z.B. Was bei dem Usern editieren will (nehmen wir mal das PW) kommt eine Fehler meldung:

Error while storing the user information. The user might have been deleted. Please refresh the user list.

So also user liste refreshed. Jetzt versuche ich mit dem User und dem geändertem PW auf die DB zuzugreifen. Fehler:

1045 - Acess denied for user 'subroot@'126.0.0.23' (using password: YES)
mach ich den Anmelde Prozess ohne Password kommt (using password: NO)

Mach ich jetzt das ganze jetzt lokal vor dem Server. Dann kommt immer diese Meldung:
Fehler beim Ausführen der Änderungen durch den Benutzer.
MySQL ERROR Nr. 0

Also ich hoffe du bist jetzt der Meinung mit mir das hier die Rechte fehlen.
Wie in dem Bild oben zu sehen ist sind dort ein paar Tabellen wo dort angezeigt wird das Rechte ein paar Rechte mit NO quitiert sind.
Ich kann das zwar alles im MySQL Adminstrator ändern und auch bestätigen. Aber dann hat er diese Einstellungen nicht übernommen.

MfG
Alfons

marce
15.09.08, 12:05
vor allem anderen: hast Du nach dem Ändern der Rechte auch die privileges geflusht?

Alfons2
15.09.08, 12:08
Access dienied: you need the Reload privilege for this operation
Hab ich schon probiert. Aber das ist nochn Hinweis auf ein fehlendes Recht

marce
15.09.08, 12:15
Error while storing the user information. The user might have been deleted. Please refresh the user list.

So also user liste refreshed. Jetzt versuche ich mit dem User und dem geändertem PW auf die DB zuzugreifen. Fehler:

1045 - Acess denied for user 'subroot@'126.0.0.23' (using password: YES)
mach ich den Anmelde Prozess ohne Password kommt (using password: NO)

mit dem geänderten kann nicht funktionieren, da, wie die Fehlermeldung ja deutlich sagt, das geändern nicht gespeichert werden konnte.

Außerdem sind das immer noch keine exakten Infos.

Mach die Eingaben und Ausgaben bitte an der MySQL-Konsole, nicht mit irgendwelche komischen grafischen Clients.

Die Option, die Rechtetabelle komplett neu aufzubauen hast Du übrigens immer noch.

Alfons2
15.09.08, 12:32
Mach doch mal den Beispiel was du mit exakten Infos meinst.

Und was wäre das für eine Option die Rechte Tabelle neu aufzubauen?

marce
15.09.08, 12:37
Und: ohne konkrete Daten (Befehle, Tabelleninhalte, exakte Fehlermeldung, evtl. Logeinträge) - nein.
was soll ich da noch mehr sagen? Und das halt bitte an der Konsole. Und im Wortlaut.

evtl. hilft Dir aber auch:

mysql_fix_privilege_tables
mysql_install_db
mysql_setpermission
mysqlcheck

... und das lesen der Doku.

Alfons2
15.09.08, 13:02
Gut ich versuche per Konsole den Mysql Server runter zu fahren.



linux>/etc/init.d/mysql stop failed
linux>/etc/init.d/mysql start --skip-grant-tables done

linux>mysql -u root -p
Enter password:


jetzt die Update funktion.



UPDATE information_schema.TABLE_PRIVILEGE SET IS_GRANTABLE=NO ('YES') WHERE Grantee='root'@'%';
You have an Error in your SQL Syntax; check the manual that... for the right syntax use near
'='NO' ('YES') WHERE Grantee='root'' at LINE 1



Wenn ich dann trotzdem eingebe


FLUSH PRIVILEGES;
Access dienied: you need the Reload privilege for this operation


Das das runterfahren nicht funktioniert hat ist mir klar aber ich dachte weil das hochfahren geklappt hat, müsste das ganze ja funktionieren. Aber irgendwie hat das doch nicht geklappt. Es gab auch keine Meldung bei dem failed warum es so war.

Alfons2
15.09.08, 16:48
Läuft alles wieder...

hab gerade mysql server beendet um zu deinstallieren, da hab ich mir gesagt: " du wirst dich doch wohö nicht von einem Programm geschlagen geben" und hab wieder hoch gefahren eingeloggt und alles wahr ok.

ich hoffe das war exakt erklärt :D

marce
16.09.08, 05:56
das war exakt. Und mir zumindest ist klar, worin "das Problem" lag.

Dir auch?

Alfons2
16.09.08, 12:53
Glaube schon!

Die Rechte waren ja alle gegeben. Nur es musste aktualisiert werden.
Da das mit dem Befehl Flush Privileges
nicht ging musste neugestartet werden.