Hallo zusammen...
Gestern gab es ein Update der Webapp "phpMyAdmin". Nicht auf Gentoo, aber bei SourceForge. Nun, es setzen nicht alle das aus Portage ein (so wie ich), weil die Versionen manchmal etwas älter schon sind...
Die meisten, die phpMyAdmin nutzen, werden sicherlich ihre "config.inc.php", also die Haupt-Config iwo gesichert haben, sie entweder bei Updates in den Installationsordner zurückspielen oder webapp-config nutzen. Leider jedoch wird sich bei der Installation von phpMyAdmin >4.0.10 ein Problem ergeben, da die Tabellenstruktur sich geändert hat. Früher waren die Tabellen direkt unter der Datenbank angeordnet. Seit Version 4.1.0 liegen sie in einem Unterordner "pma".
Natürlich kann man die Struktur erneuern. Das geht, indem man in phpMyAdmin die, im entpackten Archiv unter "examples" liegende Datei "create_tables.sql" in phpMyAdmin importiert... Nur, wird man dabei feststellen, das dadurch lediglich die neue Struktur hinzugeaddet wird. Die alten Tabellen bleiben. Und beim Versuch sie zu löschen, springt dem (zurecht) erschrockenen User phpMyAdmin auch noch mit wüsten Fehlermeldungen ins Gesicht.
Dieser ist, nach dem Versuch, die DB "phpmyadmin" zu löschen (um sie neu, und nach neuer Hierarchie) zu erstellen - funktionslos.
Was kann man tun?
Zunächst: Man könnte die ohnehin nicht mehr funktionierende "config.inc.php" löschen. Und Ohne Config einloggen. Dann wird keine Rücksicht auf die Tabellen genommen... Aber in wie weit zuverlässig, möchte ich mal im Raum stehen lassen...
Ich habe dafür den Weg hier erarbeitet:
(Shell Zugang zum Server erforderlich) (Ich weiß nicht, ob Webhoster für mysql-Konfigurationen eine Shell zur Verfügung stellen. Das Einloggen von Außerhalb ist meist gesperrt, damit die Gefahr vermindert wird, das sich jemand daran versucht auf den DB-Server zu kommen. "localhost" ist aber der Server nur dann, wenn man sich per SSH zu ihm verbinden kann)
Mit
|
Quellcode
|
1
|
mysql -h localhost -u root -pPasswort
|
zur mysql-Console wechseln.
Vorhandene DB anzeigen lassen:
|
Quellcode
|
1
|
SHOW DATABASES;
|
Datenbank "phpmyadmin" mit folgendem Befehl löschen:
|
Quellcode
|
1
|
DROP DATABASE IF EXISTS phpmyadmin;
|
Existierende User anzeigen lassen:
|
Quellcode
|
1
|
select * from mysql.user;
|
User "pma" löschen:
|
Quellcode
|
1
|
DROP USER 'pma'@'localhost';
|
Mit
|
Quellcode
|
1
|
QUIT;
|
die mysql-console wieder verlassen...
*Vorsicht bei den "Löschereien"! - phpMyAdmin stellt Sicherheitsfragen, ob WIRKLICH etwas gelöscht werden soll... Die mysql-console löscht SOFORT!!! - Wenn man(n) versehentlich eine falsche DB angibt, sind möglicherweise Dienste auf dem Server nicht mehr lauffähig!!!)
Anschließend in phpmyadmin einloggen. Die Datei "create_tables.sql" einspielen (importieren). Dann User "pma" neuanlegen und ihm Rechte erteilen. pma ist eigentlich "nur" ein Controlluser. Man kann ihn auch mächtig wie "root" machen. Allerdings sollte man dann nicht sein Passwort in der config.inc.php eingetragen haben.
Anschließend die config.inc.php per
|
Quellcode
|
1
|
cp config.sample.inc.php config.inc.php
|
kopiert. Anschließend muss sie angepasst werden (Auskommentieren der von phpMyAdmin genutzten nun wieder, und am richtigen Platz vorhandenen Tabellen).
Hoffe, die Anleitung hilft etwas...