Zu viele fehlerhafte Verbindungen

ultrakollega

Erfahrenes Mitglied
Hi Leute,

habe folgendes Problem. Wenn auf unserer Seite sehr viel Traffic herscht, sperrt die
MySQL DB irgendwann die IP der Seite von welcher die Anfragen kommen.

Der Grund ist folgender (Fehlermeldung):

Code:
Datum und Uhrzeit
2004-11-03 08:21:35
Error: DB Error: connect failed
Usermessage: [nativecode=Host blockiert wegen zu vieler Verbindungsfehler. Aufheben der Blockierung mit 'mysqladmin flush-hosts'.] ** mysql://user:pass@host/database

Nun folge ich dem Rat der Fehlermeldung und alles Funktioniert wieder, bis es irgendwann
dann mal wieder so weit ist das ich die Tables flushen muss.

Woran kann das liegen? Gibt es ein Tool welches ich am Server installieren kann,
welches mir die Abfragen an die DB loggt oder so, damit ich drauf komme woher
genau der Fehler kommt?

Das Projekt ist mega umfangreich und ich habe keine Lust mir alle Skripte durch-
zusehen.

Vielleicht hat ja jemand einen Tipp ;-)

Na dann noch frohes schaffen!

mfg

Ultra
 
Ich zitiere mal das MySQL Manual
Wenn Sie einen Fehler wie folgt erhalten:

Host 'hostname' is blocked because of too many connection errors.
Unblock with 'mysqladmin flush-hosts'

Bedeutet das, dass mysqld zu viele (max_connect_errors) Verbindungsanforderungen vom Host 'hostname' erhalten hat, die mittendrin unterbrochen wurden. Nach max_connect_errors fehlgeschlagenen Anfragen nimmt mysqld an, dass etwas nicht stimmt (wie ein Angriff eines Crackers) und blockiert weitere Verbindungsanforderungen von der Site, bis jemand mysqladmin flush-hosts ausführt.

Vorgabemäßig blockiert mysqld einen Host nach 10 Verbindungsfehlern. Das können Sie leicht durch Starten des Servers wie folgt ändern:

shell> safe_mysqld -O max_connect_errors=10000 &

Beachten Sie, dass Sie bei dieser Fehlermeldung für einen gegebenen Host zunächst prüfen sollten, ob etwas mit den TCP/IP-Verbindungen von diesem Host aus nicht stimmt. Wenn Ihre TCP/IP-Verbindungen nicht funktionieren, nützt es Ihnen nichts, den Wert der max_connect_errors-Variablen heraufzusetzen!

Läuft die DB auf einem Rootserver oder auf "einfachem" Webspace? Oder anders gefragt: Kommst du an die MySQL Logfiles - dort sollten eigentlich die Connection Errors protokoliert werden...
 
Morgen und danke für deine Antwort!

Die DB kommt nun von extern auf meinen Server, dann kann ich mir auch die Logfiles
ansehen.

Werd heute Abend ein Dump bei mir einspielen und das ganze nochmal testen, immerhin
kommt die DB nun von einem W2K Server auf eine Linuxumgebung.

Also, danke.

mfg

Ultra
 
Zurück