Datenbankverbindungen können schnell zu einem Engpass werden, insbesondere bei hoher Benutzerlast oder gezielten Angriffen wie Denial-of-Service (DoS). Ohne Limits kann eine Web-Anwendung den Datenbankserver überlasten, was zu Ausfällen, hohen Latenzen oder vollständigen Systemstillständen führt. Dieser Leitfaden zeigt Einsteigern, IT-Studierenden und Junior Network Engineers praxisnah, wie Datenbankverbindungen limitiert und Web-Stacks gegen Überlast geschützt werden.
Warum Connection Limits wichtig sind
Jede Datenbankverbindung verbraucht Ressourcen wie RAM, Threads und CPU-Zeit. Unbegrenzte Verbindungen können folgende Probleme verursachen:
- Server-Ressourcen erschöpft
- Langsame Abfragen und Timeouts
- DoS-Angriffe werden verstärkt
- Instabilität bei Lastspitzen
MySQL/MariaDB Connection Limits
MySQL und MariaDB erlauben die Konfiguration von maximalen Verbindungen pro Server und pro Benutzer.
Serverweite Limits
sudo nano /etc/mysql/my.cnf
[mysqld]
max_connections = 200
thread_cache_size = 50
wait_timeout = 300
max_connections: Maximale gleichzeitige Verbindungenthread_cache_size: Wiederverwendung von Threads reduziert Overheadwait_timeout: Inaktive Verbindungen nach Sekunden schließen
Benutzerbasierte Limits
CREATE USER 'webapp'@'localhost' IDENTIFIED BY 'SicheresPasswort!';
GRANT ALL PRIVILEGES ON webapp_db.* TO 'webapp'@'localhost' WITH MAX_USER_CONNECTIONS 50;
FLUSH PRIVILEGES;
Damit kann ein einzelner Benutzer die Serverkapazität nicht überlasten.
PostgreSQL Connection Limits
PostgreSQL steuert Verbindungen über globale Parameter und Rollen.
Serverweite Limits
sudo nano /etc/postgresql/13/main/postgresql.conf
max_connections = 200
superuser_reserved_connections = 5
idle_in_transaction_session_timeout = 300000
max_connections: Gesamtkapazität für gleichzeitige Verbindungensuperuser_reserved_connections: Reservierte Verbindungen für Adminsidle_in_transaction_session_timeout: Zeitlimit für inaktive Transaktionen
Rollenbasierte Limits
ALTER ROLE webapp CONNECTION LIMIT 50;
Damit wird verhindert, dass eine einzelne Rolle die gesamte Verbindungskapazität blockiert.
Connection Pooling als Schutz
Connection Pooling reduziert die Anzahl offener Verbindungen und sorgt für effiziente Nutzung.
- PgBouncer für PostgreSQL
- ProxySQL für MySQL/MariaDB
- Web-Frameworks mit integrierten Pools (z. B. PHP PDO, Python SQLAlchemy)
Beispiel PgBouncer Konfiguration
[pgbouncer]
listen_addr = 0.0.0.0
listen_port = 6432
max_client_conn = 500
default_pool_size = 50
reserve_pool_size = 20
pool_mode = transaction
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
Netzwerk- und Subnetzplanung
In Multi-Server-Setups sollte die Netzwerktopologie für Datenbankzugriffe und Pooling sorgfältig geplant sein.
IPv4 Subnetz
<math>
DB-Server-IP = 192.168.320.10/24
Subnetzadresse = 192.168.320.10 & 255.255.255.0 = 192.168.320.0
Broadcastadresse = 192.168.320.0 | ~255.255.255.0 = 192.168.320.255
</math>
IPv6 Subnetz
<math>
DB-Server-IP = 2001:db8:abcd:320::10/64
Subnetzadresse = 2001:db8:abcd:320:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:320::0
Broadcastadresse = 2001:db8:abcd:320:ffff:ffff:ffff:ffff
</math>
Best Practices
- Serverweite
max_connectionsentsprechend der Hardware setzen - Benutzer- oder rollenbasierte Limits definieren
- Connection Pooling einsetzen, um Last zu glätten
- Timeouts für inaktive oder blockierte Sessions konfigurieren
- Reservierte Verbindungen für Admins behalten
- Monitoring der aktiven Verbindungen einrichten
- Warnungen bei Überschreitung von Limits
- Netzwerk-Subnetze für DB-Zugriffe sauber planen
- DoS-Angriffe durch IP-Firewalls oder Load Balancer abmildern
- Regelmäßige Updates und Patches für Datenbankserver durchführen
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











