Antworten auf deine Fragen:
Neues Thema erstellen

mysql too many connections

Espressolia

Nicht mehr ganz neu hier

Hallo!

Mein Webserver ist bei 1&1. Seit neuesten (ca. 1 Monat) bekomme ich in unregelmäßigen Abständen die Fehlermeldung "too many connections" von mysql.:'( Ich weiß aber nicht, woran es liegt. Im header öffne ich meine Verbindungen zur DB. In meinem includenten footer schließe ich die mysql-Verbindung mittels mysql_close(). Woran kann es also liegen?

Ich danke im Voraus für eure Hilfe.
Ciao - die espressolia
 

hub

nicht ganz neu hier

AW: mysql too many connections

Moin moin,
das sind etwas zu wenig Infos und lasst sich so nicht beantworten (Schleifen in Schleifen? usw.).
Du kannst mal über phpMyAdmin in der Query-Box mal den Status mit "SHOW STATUS" abrufen. Vielleicht hilft dir das ein Stück weiter.
max_connections sorgt dafür, das der Server nicht überlastet wird.

Gruß Ulli
 

Duddle

Posting-Frequenz: 14µHz

AW: mysql too many connections

Naja, das ist eine Servereinstellung. Falls der Maximalwert bei 10 ist und du 11 Nutzer gleichzeitig hast, geht eben nicht mehr. Wahrscheinlich wird dein Server auch gleichzeitig von anderen Nutzern angesprochen (shared host), dann ist auch ein Maximum von 150 schnell aufgebraucht.
Ich finde derzeit nicht auf die Schnelle, wie der Wert bei 1&1 ist (ist wohl auch abhängig vom gebuchten Paket). Du kannst ja bei denen mal fragen, welches Limit da gesetzt ist und mglw. wieviel Prozent du davon benutzt.

Aber viel mehr als deine Verbindungen zu schließen kannst du nicht. Das passiert sowieso am Ende des PHP-Skriptes automatisch (solange du keine persistenten Verbindungen aufbaust).

Vielleicht kannst du auch mal in die Liste aller aktiven Verbindungen mit der MySQL-Query
Code:
SHOW PROCESSLIST;
schauen, dafür brauchst du aber bestimmte Rechte die dein Superuser-Account wahrscheinlich hat. Dieser kann sich auch verbinden wenn alle anderen Slots belegt sind.


Duddle
 

hub

nicht ganz neu hier

AW: mysql too many connections

Ich habe gerade mal nach geschaut. In meinem 1und1 Account ist
max_connections: 240
max_user_connections: 18
je Datenbank eingetragen. Nicht gerade viel, aber Probleme gab es bisher auch auf gut besuchten Seiten nicht.
Es hängt in dem Fall durchaus von SQL und der Programmierung drum herum ab, wie lange sie den Server jeweils beanspruchen (darum der Hinweis: zu wenig Infos)

Gruß Ulli
 

hub

nicht ganz neu hier

AW: mysql too many connections

Moin, ich noch mal.
Mir ist dazu noch eingefallen, das ich ähnlichen Stress bei 1und1 mit nem kleinen Packet hatte. Zu der Zeit gabs noch einen richtig guten Kundendienst der Ahnung hatte. Das Problem war nach einem Anruf und ca. 12 Stunden später durch einen Umzug auf einen anderen Server behoben. Wie es heute aussieht - leider keine Ahnung. Einfach mal dort nachfragen ...

Gruß Ulli
 

Espressolia

Nicht mehr ganz neu hier

AW: mysql too many connections

Vielen dank für eure Antworten :)
Meine Seite ist in drei Bereiche aufgeteilt die ich in die index.php include. Das ist der Header- Content und Footerbereich. Im header habe ich ein requiere_once zu meiner function.php (wo alle globalen Funktionen gespeichert sind). In der function.php ist zusätzlich auch ein require_once zu meiner dbconnect.php wo db geöffnet wird mit mysql_connect().
In Footer schließe ich schlussendlich wieder die Verbindung mit mysql_close() - ohne Parameter ist das eventuell der Fehler?

Bei "SHOW PROCESSLIST" zeigt er mir zwei einträge mit sleep und query.

Bei "SHOW STATUS" steigt ca. jede 2min der Wert "Aborted_clients" (das ist wohl der Fehler)
Bei "Aborted_connections" steht 2276

Warum aber steigt das wenn ich die Verbindung immer wieder schließe?

Ich bin ratlos:'(
Espressolia
 

Duddle

Posting-Frequenz: 14µHz

AW: mysql too many connections

Interessant, aber wenn in SHOW PROCESSLIST nur zwei Verbindungen vorhanden sind, sind auch nur zwei Clients mit der DB verbunden. Mich würde der volle Eintrag interessieren der "sleep" enthält, und auch ob der periodisch wiederkehrt.

Ansonsten finde ich in der MySQL-Doku zu "aborted_*" nur diese Seite.
# The client program did not call mysql_close() before exiting.
# The client had been sleeping more than wait_timeout or interactive_timeout seconds without issuing any requests to the server.
# The client program ended abruptly in the middle of a data transfer
Das mysql_close() sollte nicht wichtig sein, da laut Handbuch alle Verbindungen automatisch am Ende geschlossen werden. Ich habe in meiner lokalen Datenbank auch 0 aborted_clients, obwohl ich selten mysql_close() explizit nutze. Der Parameter ist auch optional, da automatisch die letztgeöffnete Verbindung geschlossen wird.

Der zweite Stichpunkt klingt schon interessanter: es könnte sein, dass irgendeines deiner Scripte ewig lange auf irgendwas wartet, während es verbunden ist. Das würde auch (glaube ich) das "sleep" erklären.

Der dritte Stichpunkt ist schon unwahrscheinlicher, mir fällt derzeit kein Fall ein bei dem das in einem PHP-Skript passieren könnte.

Für das aborted_connections steht dort:
Unsuccessful connection attempts can occur for the following reasons:
* A client does not have privileges to connect to a database.
* A client uses an incorrect password.
* A connection packet does not contain the right information.
* It takes more than connect_timeout seconds to get a connect packet. See Section 5.1.4, “Server System Variables”.

If these kinds of things happen, it might indicate that someone is trying to break into your server!
Hier ist der letzte Satz wichtig. Wenn jemand unerfolgreich versucht, sich zu deinem MySQL-Server zu verbinden (kann man ja, wenn er nach aussen offen ist), dann erhöht sich der Zähler. Sowas steht dann wahrscheinlich in der Log-Datei, falls die aktiviert ist.

Ich würde an deiner Stelle wohl mit dem Support reden, vielleicht kriegst du sie dazu ein paar Logs für deinen Server rauszurücken. Falls zum Beispiel ein Angreifer scriptgesteuert versucht auf den MySQL-Server zu kommen, dann macht er das mglw. parallel. Ergo belegt er gleichzeitig viele der maximal möglichen Verbindungen.

Edit: achja, deine Frage
Warum aber steigt das wenn ich die Verbindung immer wieder schließe?
Der Zähler ist ja für fehlerhafte Verbindungen, der sinkt nie.

Duddle
 
Zuletzt bearbeitet:

hub

nicht ganz neu hier

AW: mysql too many connections

Ich würde an deiner Stelle wohl mit dem Support reden, vielleicht kriegst du sie dazu ein paar Logs für deinen Server rauszurücken.
Dafür reicht schon der Access-Log, der sollte frei zugänglich sein - beim Error-Log hat man bei 1und1 schlechte Karten. Den müsstest du dir selber einrichten.
Bei Bedarf kann ich dir erklären, wie das geht (das solllte eigentlich Paketunabhängig sein).
Ich weiss ia nicht, wie die Fehlerbehandlung organisiert ist, es könnte u.U. auch ne eigene Query sein, die durch einen Fehler zum vorzeitigen Abbruch führt.

Gruß Ulli
 

Espressolia

Nicht mehr ganz neu hier

AW: mysql too many connections

Hallo, vielen Dank für eure Antworten. Ich habe mir mal das logs-archiv vom 15.11.2012 heruntergeladen und entpackt. Leider weiß ich nicht, wie ich dieses nun öffnen kann. Könnte mir da jemand behilflich sein?
Danke im Voraus,
Espressolia
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben