Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler 1203; 1040 TOO_MANY_...._CONNECTIONS ausperren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehler 1203; 1040 TOO_MANY_...._CONNECTIONS ausperren

    Hallo Leute,
    ich habe manchmal das Vergnügen mit 1040. Deshalb habe ich mir Abhilfe mit diesem Code schaffen wollen:

    PHP-Code:
    <?php
    @mysql_connect($hostname$username$password);
                if (
    mysql_errno() == 1203 || mysql_errno() == 1040) {
                   require 
    "performance_probleme.php";
                  exit;
                }
    ?>
    um auf der sicheren Seite zu stehen habe ich auch MAX_USER (1203) mit reingepackt.

    Allerdings:
    Wenn 1040
    #

    Error: 1040 SQLSTATE: 08004 (ER_CON_COUNT_ERROR)

    Message: Zu viele Verbindungen
    auftritt, so kommt auch brav die "Performance Probleme" Seite nur der Fehler verschwindet nicht nach gewisser Zeit, obwohl die MySQL ja zu 100% entlastet wird. Woran kann sowas liegen, oder habe ich einen Denkfehler?

    Gruss, Micha

  • #2
    Hm. Ich bin da ned besonders fit, aber kann es sein, dass mysql_errno() immer auf den letzten entstandenen Fehler zeigt?

    Kommentar


    • #3
      Jein, auf den letzen Fehlercode.
      Wenn mysql_connect klappt, setzt es den Fehlercode auf 0 -> kein Fehler.

      Kommentar


      • #4
        Zitat von Bruchpilot
        Jein, auf den letzen Fehlercode.
        Wenn mysql_connect klappt, setzt es den Fehlercode auf 0 -> kein Fehler.
        Von daher müsste es doch dann theoretisch klappen mit dem Code.
        Denn wenn der Fehler auftritt wird der User brav zwischengeparkt. nach 20 Sek. ein erneuter Reload der Seite und ist immer noch 1040, dann kommt er iweder auf die "parkseite"... Allerdings tritt der 1040 er einmal auf, so erholt sich die MySQL davon nicht mehr...(was ich wiederum überhaupt nicht verstehen kann)

        Kommentar


        • #5
          Allerdings tritt der 1040 er einmal auf, so erholt sich die MySQL davon nicht mehr...
          Was tust Du dann, damit es erstmal wieder funktioniert? Mysql-Server anhalten und erneut starten?
          Wie ist die Pause bei der Parkseite umgesetzt?
          Bei ungefähr welcher Belastung tritt der Fehler auf?

          Kommentar


          • #6
            Das Problem ist, wenn die MySQL einen 1040er hat, ist Schluß mit lustig. Man kommt nicht mehr drauf. Ich denke aber, dass jede Menge Requests noch offen sind und deshalb die MySQL rumquakt. Kill bringt auch nichts mehr. was hilft - MySQL neu starten.

            Die Parkseite sieht so aus:
            Code:
            <meta http-equiv="refresh" content="30; URL=<?echo $url;?>index.php">
            <div align="center">Leider gibt es im Moment technische Probleme mit der Datenbank.
            
            Benutzen Sie bitte den Aktualisieren-Button ihres Browsers um einen erneuten Zugriff zu versuchen. </div>
            Die Belastung ist unterschiedlich. Ich denke halt (es kommt auch bei niedrigen Belastungen vor), dass die MySQL mit offenen Requests zu kämpfen hat (bspw. DOS Angriff). Kommt aber im Jahr nur 2-3 mal vor. Trotzdem extrem lästig

            Kommentar


            • #7
              Vielleicht solltest Du dann lieber etwas schreiben, das gleich den mysql Server neustartet.

              Kommentar


              • #8
                Wäre gefählich bei einer Attacke (denke ich mir zumindest) --- Datenverlust?
                Weis nicht, habe noch nicht darüber nachgedacht. Blos wenn er in einer Schleife landet und sich permanent neu Startet...???

                Kommentar


                • #9
                  Dann wäre es zu einfach umgesetzt worden

                  Kommentar

                  Lädt...
                  X