3.8 KiB
3.8 KiB
phpMyAdmin Integration - Rezepte
🗄️ Datenbank-Verwaltung über Web-Interface
phpMyAdmin ist jetzt in das Traefik-Setup integriert und ermöglicht eine benutzerfreundliche Verwaltung der MySQL-Datenbank über das Web.
🌐 Zugriff
Produktions-Deployment (mit Traefik):
https://phpmyadmin.your-domain.com
Login-Daten:
- Server:
mysql(automatisch konfiguriert) - Benutzername:
root - Passwort: Ihr
MYSQL_ROOT_PASSWORDaus der.env.production
🔧 Konfiguration
1. Traefik Labels:
labels:
- "traefik.enable=true"
- "traefik.http.routers.phpmyadmin.rule=Host(`phpmyadmin.${DOMAIN}`)"
- "traefik.http.routers.phpmyadmin.entrypoints=websecure"
- "traefik.http.routers.phpmyadmin.tls.certresolver=letsencrypt"
- "traefik.http.services.phpmyadmin.loadbalancer.server.port=80"
2. Umgebungsvariablen:
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
- PMA_USER=root
- PMA_PASSWORD=${MYSQL_ROOT_PASSWORD}
- UPLOAD_LIMIT=2G
- MEMORY_LIMIT=2G
- MAX_EXECUTION_TIME=0
🔒 Sicherheit
Zusätzliche Authentifizierung (Optional):
Um eine zusätzliche Sicherheitsebene hinzuzufügen, können Sie Basic Auth aktivieren:
- In der docker-compose.traefik.yml die Zeile auskommentieren:
# - "traefik.http.routers.phpmyadmin.middlewares=auth"
- Eigenes Passwort generieren:
# Passwort "secure123" hashen (ändern Sie das Passwort!)
echo $(htpasswd -nbB admin "secure123") | sed -e s/\\$/\\$\\$/g
- In Traefik-Labels verwenden:
- "traefik.http.middlewares.auth.basicauth.users=admin:$$2y$$10$$..."
🚀 Features
Optimiert für große Datenbanken:
- Upload Limit: 2GB für große SQL-Imports
- Memory Limit: 2GB für komplexe Operationen
- Execution Time: Unbegrenzt für lange Abfragen
Funktionen:
- ✅ SQL-Abfragen ausführen
- ✅ Datenbank-Struktur verwalten
- ✅ Daten importieren/exportieren
- ✅ Rezepte-Daten durchsuchen
- ✅ Backups erstellen
- ✅ Performance-Monitoring
📊 Nützliche Abfragen
Rezepte-Übersicht:
SELECT r.Rezept_Nr, r.Titel, r.Datum, COUNT(z.ID) as Schritte
FROM Rezepte r
LEFT JOIN Zubereitung z ON r.Rezept_Nr = z.Rezept_Nr
GROUP BY r.Rezept_Nr
ORDER BY r.Datum DESC;
Zutaten-Statistik:
SELECT z.Zutat, COUNT(*) as Verwendung
FROM ingredients z
GROUP BY z.Zutat
ORDER BY Verwendung DESC
LIMIT 20;
Bilder pro Rezept:
SELECT r.Titel, COUNT(rb.id) as Anzahl_Bilder
FROM Rezepte r
LEFT JOIN rezepte_bilder rb ON r.Rezept_Nr = rb.rezept_nr
GROUP BY r.Rezept_Nr
ORDER BY Anzahl_Bilder DESC;
🛠️ Deployment
Mit Traefik starten:
./deploy-traefik.sh
Einzeln testen:
docker-compose -f docker-compose.traefik.yml up phpmyadmin -d
🔧 Troubleshooting
Verbindungsprobleme:
- MySQL-Container prüfen:
docker-compose -f docker-compose.traefik.yml logs mysql
- phpMyAdmin-Logs:
docker-compose -f docker-compose.traefik.yml logs phpmyadmin
- Netzwerk-Konnektivität:
docker exec -it rezepte-phpmyadmin ping mysql
Häufige Probleme:
- "Cannot connect to MySQL": MySQL-Container noch nicht bereit
- SSL-Zertifikat fehlt: Traefik benötigt Zeit für Let's Encrypt
- Login fehlgeschlagen: MYSQL_ROOT_PASSWORD in .env.production prüfen
📁 Zusammenhang mit Rezepte-System
Wichtige Tabellen:
- Rezepte: Haupt-Rezeptdaten
- ingredients: Zutaten und Mengen
- Zubereitung: Zubereitungsschritte
- rezepte_bilder: Bild-Metadaten
Datenbank-Schema verstehen:
phpMyAdmin hilft dabei, die Beziehungen zwischen den Tabellen zu visualisieren und komplexe Abfragen für Reports zu erstellen.
🎯 Ziel: Professionelle Datenbank-Verwaltung mit sicherer Web-Oberfläche für das Rezepte-Management-System.