Zum Inhalt

phpMyAdmin – Wie funktioniert das unter der Haube?

phpMyAdmin ist schnell installiert – aber weisst du wirklich was dabei passiert? Dieser Beitrag führt dich Schritt für Schritt durch die wichtigsten Fragen.


1. Braucht phpMyAdmin eine eigene Datenbank?

Führe nach der Installation folgenden Befehl in MySQL aus:

SHOW DATABASES;

Du wirst eine Datenbank namens phpmyadmin sehen. Diese gehört nicht zu WordPress, sondern zu phpMyAdmin selbst.

Was steckt darin?

USE phpmyadmin;
SHOW TABLES;

Diese Datenbank speichert Benutzereinstellungen, gespeicherte Abfragen (Lesezeichen) und andere phpMyAdmin-spezifische Daten. Sie ist optional – phpMyAdmin funktioniert auch ohne sie, aber gewisse Funktionen fehlen dann.

Wo liegt das Schema dieser Datenbank?

ls /usr/share/doc/phpmyadmin/examples/

Dort findest du die SQL-Datei mit der Struktur der phpMyAdmin-Datenbank.


2. Braucht phpMyAdmin einen eigenen MySQL-Benutzer?

Ja. Schau dir die Benutzer in MySQL an:

SELECT user, host FROM mysql.user;

Du wirst einen Benutzer namens phpmyadmin sehen. Das ist der Systembenutzer den phpMyAdmin intern verwendet, um sich mit MySQL zu verbinden – unabhängig davon mit welchem Benutzer du dich über das Login-Formular anmeldest.

Wo sind die Zugangsdaten dieses Benutzers definiert?

cat /etc/phpmyadmin/config-db.php

In dieser Datei stehen: - $dbuser – der MySQL-Benutzername (meist phpmyadmin) - $dbpass – das automatisch generierte Passwort - $dbname – die phpMyAdmin-Datenbank - $dbserver – der MySQL-Host (meist localhost)

Diese Datei wurde automatisch während apt install phpmyadmin erstellt. Das Passwort wurde dabei zufällig generiert.

Welche Rechte hat dieser Benutzer?

SHOW GRANTS FOR 'phpmyadmin'@'localhost';

Dieser Benutzer hat nur Rechte auf die phpmyadmin-Datenbank – nicht auf deine WordPress-Datenbank. Er ist also kein Admin.


3. Authentifizierungsarten

phpMyAdmin unterstützt verschiedene Methoden, um Benutzer zu authentifizieren. Die Konfiguration findest du hier:

cat /etc/phpmyadmin/config.inc.php

Suche nach der Zeile mit auth_type:

$cfg['Servers'][$i]['auth_type'] = 'cookie';

Die wichtigsten Authentifizierungsarten:

Typ Beschreibung Sicherheit
cookie Login-Formular wird angezeigt. Zugangsdaten werden verschlüsselt im Browser-Cookie gespeichert. ✅ Empfohlen
config Benutzername und Passwort sind direkt in der config.inc.php hinterlegt. Kein Login-Formular. ❌ Unsicher
http HTTP Basic Authentication (Browser-Popup). ⚠️ Nur mit HTTPS sinnvoll
signon Authentifizierung über eine separate Login-Session. ✅ Für komplexe Setups

Warum ist cookie empfohlen?

Bei cookie werden die Zugangsdaten nicht in der Konfigurationsdatei gespeichert. Jede Person meldet sich mit ihrem eigenen MySQL-Benutzer an. Bei config hingegen haben alle Benutzer automatisch Zugriff mit denselben hardcodierten Zugangsdaten – das ist ein Sicherheitsrisiko.

Was ist das Blowfish-Secret?

grep blowfish /etc/phpmyadmin/config.inc.php

Das Blowfish-Secret ist ein zufälliger Schlüssel, mit dem phpMyAdmin die Cookie-Daten verschlüsselt. Es sollte mindestens 32 Zeichen lang sein. Ein leeres oder kurzes Secret erzeugt eine Warnung in phpMyAdmin.


Zusammenfassung

Frage Antwort
Eigene Datenbank? Ja – phpmyadmin DB für interne Einstellungen
Eigener MySQL-User? Ja – phpmyadmin User, nur Rechte auf phpmyadmin DB
Zugangsdaten wo? /etc/phpmyadmin/config-db.php
Standard Auth-Typ? cookie – sicherste Option
Config-Datei? /etc/phpmyadmin/config.inc.php