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-ID: 55571

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

Ausgedruckt am: 25.11.2024 um 12:11 Uhr

16568
16568 01.04.2007 um 22:10:13 Uhr
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
TheDarkSide
TheDarkSide 02.04.2007 um 06:12:15 Uhr
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.
16568
16568 02.04.2007 um 09:06:17 Uhr
Goto Top
Was für eine Version setzt Du bei Dir zuhause ein?


Lonesome Walker
TheDarkSide
TheDarkSide 02.04.2007 um 16:33:04 Uhr
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
Biber
Biber 06.04.2007 um 19:12:03 Uhr
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
TheDarkSide
TheDarkSide 07.04.2007 um 09:15:06 Uhr
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*
16568
16568 07.04.2007 um 09:38:58 Uhr
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