thedarkside
Goto Top

MySQL 4.1.22 Problem - 1040 Too many connections

Es geht darum das bis vor zwei Wochen der Server, auf dem drei meiner Projekte liegen, normal funktioniert hat. Seit dem gibt es aber ständig den Fehler 1040. Mit dem Hoster hab ich gesprochen, und er hat max_connections von 100 auf 500 gesetzt. Jedoch nur manuell da beim Neustart Mysql nur 100 akzeptiert - obwohl unter [mysqld] eingetragen.

set-variable=max_connections=500

Habe meine Scripte, alle basierend auf dem selben Hauptscript, untersucht aber keine Probleme festgestellt. Zuhause auf Debian Sarge (und Etch) mit max_connections=100 und Stresstest gab es keine Probleme. An was kann es noch liegen? Ich bin derzeit allein mit den Projekten auf dem Server.

Das Script ist optimiert - jedenfalls sag ich das und einige andere Programmierer auch.

Content-Key: 55571

Url: https://administrator.de/contentid/55571

Printed on: April 19, 2024 at 23:04 o'clock

Mitglied: 16568
16568 Apr 01, 2007 at 20:10:13 (UTC)
Goto Top
Hm, hast Du vielleicht zu viel optimiert?

Kannst Du ein DB-Update ausführen lassen?
und vergiß vorher nicht, einen Datenbank-Dump zu ziehen...


Lonesome Walker
Member: TheDarkSide
TheDarkSide Apr 02, 2007 at 04:12:15 (UTC)
Goto Top
Was denn für ein DB-Update? Die Struktur und Co. braucht kein Update. Und ich selber habe keine root-Rechte um z.b. auf V5.x zu updaten.
Mitglied: 16568
16568 Apr 02, 2007 at 07:06:17 (UTC)
Goto Top
Was für eine Version setzt Du bei Dir zuhause ein?


Lonesome Walker
Member: TheDarkSide
TheDarkSide Apr 02, 2007 at 14:33:04 (UTC)
Goto Top
Was für eine Version setzt Du bei Dir
zuhause ein?


Lonesome Walker
Ich setze zuhause 5.0.24 ein bzw 4.1.22 unter Debian. Alles ohne Problem. Aber es köntne doch am TimeOut liegen, oder?

-- SHOW VARIABLES LIKE '%time%' --

connect_timeout 5
datetime_format %Y-%m-%d %H:%i:%s
delayed_insert_timeout 300
flush_time 1800
innodb_lock_wait_timeout 50
interactive_timeout 28800
long_query_time 10
net_read_timeout 30
net_write_timeout 60
slave_net_timeout 3600
slow_launch_time 2
system_time_zone Westeurop
table_lock_wait_timeout 50
time_format %H:%i:%s
time_zone SYSTEM
timed_mutexes OFF
wait_timeout 28800
Member: Biber
Biber Apr 06, 2007 at 17:12:03 (UTC)
Goto Top
Moin, TheDarkSide,

ich wollte mal nachfagen, ob und wie Du dieses Problem in den Griff bekommen hast.

Soweit ich die obige Beschreibung interpretieren kann, sehe ich nur zwei naheliegende Erklärungen.
Entweder Dein Hoster ist zu blond, um den Defaultwert von 100 in der /etc/my.cnf wirklich zu ändern {wie Du beschrieben hast--> set-variable=max_connections=500 in der [mysqld]-Section].
Anders kann ich die Aussage "Jedoch nur manuell da beim Neustart Mysql nur 100 akzeptiert - obwohl unter [mysqld] eingetragen. nicht deuten.

Andere mögliche Erklärung, die mir plausibel erscheint und auch den bestandenen Stresstest erklärt:
Es liegt doch auf Clientseite, bei Dir--> Du verbrätst mehr Connections als eigentlich beabsichtigt.
Das kann passieren, wenn Du unabsichtlich bzw. unwissentlich mit permanenten Connections agierst, die nach Beendigung der Session nicht geschlossen werden.
Also mysql_connect() anstatt mysql_pconnect() verwendest.

(BTW: Dass Du durch Programmierfehler Connections nicht schließt, kann ausgeschlossen werden??)

Überprüfe bzw. setze noch mal in der php.ini (nicht in der my.cnf !!)
 ; in der Section...
[MySQL]
; Permanente/persitente Connections verbieten
mysql.allow_persistent=Off

Dann wird automatisch jeder eventuell vorhandene mysql_pconnect()-Aufruf als mysql_connect() ausgeführt.

Falls es etwas anderes war, poste bitte Ursache und Deine Lösung.

Grüsse
Biber
Member: TheDarkSide
TheDarkSide Apr 07, 2007 at 07:15:06 (UTC)
Goto Top
Also persistente Connections hatte ic hmal versucht, ging aber nur ca. 1-2Tage gut. Danach habe ich wieder normale Connections mit mysql_connect benutzt. Leider ist der Hoster über Ostern nicht da um das Problem zu besprechen. Aber die letzten persistenten Verbndungen sollten schon längst geschlossen sein. Ansonsten fällt mir nicht mehr ein *schnief*
Mitglied: 16568
16568 Apr 07, 2007 at 07:38:58 (UTC)
Goto Top
Leider ist der
Hoster über Ostern nicht da um das
Problem zu besprechen.

Dann würde ich an Deiner Stelle umgehend den Hoster wechseln.
Ich hoste z.B. selbst, und bin auch über die Feiertage zu erreichen.
(das nennt man übrigens Service face-wink )

Wie Biber schon angedeutet, denke auch ich, daß es 2 Möglichkeiten gibt...
(wenn es wirklich am Hoster liegt, daß er die my.cnf nicht richtig geschrieben hat, böses Autsch... )

Aber nachdem Du ja auch nicht genau sagst, was für eine Version Du zuum Entwickeln, und welche für das Live-System verwendest, kann ich leider nur meine Glaskugel polieren...


Lonesome Walker