Files
Rezepte/PHPMYADMIN_SETUP.md
2025-09-22 16:35:59 +02:00

3.8 KiB

phpMyAdmin Integration - Rezepte Klaus

🗄️ 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_PASSWORD aus 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:

  1. In der docker-compose.traefik.yml die Zeile auskommentieren:
# - "traefik.http.routers.phpmyadmin.middlewares=auth"
  1. Eigenes Passwort generieren:
# Passwort "secure123" hashen (ändern Sie das Passwort!)
echo $(htpasswd -nbB admin "secure123") | sed -e s/\\$/\\$\\$/g
  1. 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:

  1. MySQL-Container prüfen:
docker-compose -f docker-compose.traefik.yml logs mysql
  1. phpMyAdmin-Logs:
docker-compose -f docker-compose.traefik.yml logs phpmyadmin
  1. 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.