Login MySQL mit ALTEM Paßwort möglich

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Login MySQL mit ALTEM Paßwort möglich

Postby Raphalon » 06. April 2011 15:33

Hallo,

auf meiner XAMPP Installation (ApacheFriends XAMPP (Basispaket) version 1.7.4) scheint das in der config.inc.php konfigurierte Paßwort überhaupt nicht abgefragt zu werden. Ich bin zunächst folgendermaßen vorgegangen:

1. XAMPP installieren
2. Apache und mysql via XAMPP Control Panel starten
3. Via mitgelieferter Security-Konsole ein neues Paßwort für den User root in mysql vergeben
4. Nun kann man sich OHNE Konfiguration des neuen Paßworts in der config.inc.php in der phpMyAdmin-GUI anmelden und kommt direkt auf MySQL.

Das trieb mich zu folgendem Test: Wenn man via MySQL-Konsole das Paßwort ändert mittels
Code: Select all
use mysql;
update user set password = password("abc123") where user = 'root';
commit;
in phpMyAdmin jedoch nichts ändert, dann kann man sich in phpMyAdmin immer noch über das ALTE Paßwort einloggen.

Daraus folgen zwei Fragen:
- Woher hat phpMyAdmin bei einer Neuanmeldung das Paßwort, um sich in mysql einzuloggen? Wo ist es also "wirklich" konfiguriert?
- Wie kann sich phpMyAdmin mit dem alten Paßwort auf der MySQL - DB authentifizieren?

Grüße,

Raphalon
Last edited by Raphalon on 07. April 2011 08:12, edited 2 times in total.
Raphalon
 
Posts: 5
Joined: 23. September 2009 14:33

Re: Login MySQL mit ALTEM Paßwort möglich

Postby Raphalon » 07. April 2011 08:11

Hallo zusammen,

im folgenden die Erklärung. Die Ursache des "Problems" liegt in meiner bisherigen Unkenntnis über den Login-Vorgang von xampp sowie vermutlich über den Cache des Browsers, welcher bei meinem obigen ersten Versuch noch "alte" phpMyAdmin-Fehlerseiten anzeigte, obwohl es keine Fehler waren. Nach der ganzen Rumtesterei kann ich auch das Problem nicht mehr ganz nachvollziehen. Vielleicht hilft meine Erklärung wenigstens noch anderen. :oops:

Zunächst sieht nach der xampp Installation die config.inc.php erst mal so aus:
Code: Select all
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
Es ist kein Paßwort für root eingetragen. Das ist auch ok, da ja in der mysql DB auch noch kein Paßwort gesetzt ist. Da config gesetzt ist, wird auch die config (sprich config.inc.php) abgefragt. Ein separater Login mit Eingabe User und Paßwort ist nicht erforderlich. Man kommt "direkt" in die phpMyAdmin-Verwaltung der DBs.

Wenn nun via Sicherheitscheck das Paßwort für mysql neu gesetzt wird, kann NUR zwischen "cookie" und "http" ausgewählt werden, nicht aber "config". Daher wird in der config.inc.php nur die Methode, nicht aber das Paßwort geändert / eingetragen. Man muß (wegen "cookie" und nicht mehr "config") beim Einloggen in phpMyAdmin einen User und Paßwort eingeben. Es wird dann auch entsprechend ein Exit-Button angezeigt, wenn man sich eingelogged hat. Soweit so gut.

Man könnte nun manuell das Paßwort via mysql-Konsole ändern, z.B. mittels
Code: Select all
mysql> SET PASSWORD FOR root@localhost=PASSWORD('geheim');
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
(auch wenn "0 rows affected" erscheint, wurde es dennoch geändert). Da aber noch "cookie" gesetzt ist, bleibt es dabei: man muß sich mit dem neuen Paßwort einloggen. Wenn man auf "config" umstellt, dann muß man entsprechend auch das Paßwort eingetragen.

Es gibt also die zwei bzw. drei Fälle für die Login-Konfiguration:

- Fall "config": das Paßwort muß in die config.inc.php eingetragen werden

Code: Select all
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'geheim';

Ist das Paßwort nicht oder falsch konfiguriert (z.B. hat man in der mysql-Konsole ein anderes Passwort gesetzt), dann erscheint beim Zugriff auf phpMyAdmin eine Fehlermeldung: "Die Verbindung konnte aufgrund von ungültigen Einstellungen nicht hergestellt werden." Man muß also in dem "config"-Fall das Paßwort eintragen. Im übrigen erscheint in diesem Fall ("config") kein "Exit" - Button in phpMyAdmin.

- Fall "cookie" und "http"
Code: Select all
$cfg['Servers'][$i]['auth_type'] = 'cookie';  // oder eben "http"
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = ''; 
Für diesen und auch den http - Fall ist es nicht erforderlich, einen Wert für das Paßwort zu setzen. Der User wird separat danach gefragt.

Die Methoden unterscheiden sich also nur darin, wann und wo der User und das Paßwort eingetragen werden. Bei der config-Methode in der config.inc.php und bei der cookie oder http Methode wird der User halt jedes mal nach seinen Credentials abgefragt.

Ist doch eigentlich alles total einfach. Wo lag jetzt nochmal das Problem? *grumpf* :oops:

Grüße,

Raphalon
Raphalon
 
Posts: 5
Joined: 23. September 2009 14:33


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 15 guests