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.
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*
Grüße,
Raphalon