Zu viele Verbindungen?

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

  • Zu viele Verbindungen?

    Hi,

    ich erhielt eben auf der Seite meiner Community die PHP-Fehlermeldung:
    "mysql_pconnect error: to much connections" oder so.

    Es waren ca. 25 registrierte User online.

    Ich habe jetzt mal nur mysql_connect() benutz und hochgeladen. Jetzt läufts wieder - sind aber nur noch 17 User online.

    Gibts da irgendwo eine Beschränkung bei gleichzeitigem Zugriff auf die DB und wo kann ich diese erhöhen? Was ist sinnvoll?

    Wie machen das Communities mit über 1000 Usern gleichzeitig online?

    Grüße,
    Andi

  • #2
    In der PHP.ini (glaub ich jedenfalls) kannst du die Anzahl erhöhen
    PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

    Kommentar


    • #3
      Habe ich mir fast gedacht, aber wie heißt die Variable?

      Kommentar


      • #4
        mysql_max_connections (oder so ähnlich)
        PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

        Kommentar


        • #5
          Kann ich eigentlich den aktuellen Stand irgendwie mit PHP abfragen?

          Quasi:
          if(mysql_anzahl_connections($db) > 1000){
          print "Bitte versuchen sie es säter noch mal";
          exit;
          }

          Kommentar


          • #6
            Original geschrieben von andik2000
            Kann ich eigentlich den aktuellen Stand irgendwie mit PHP abfragen?
            ini_get()
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Nein, ich will ja nicht wissen, was ich in der ini eingetragen habe - das sehe ich ja selbst - sondern den aktuellen Status.

              Also wenn mysql_max_connections auf 25 gesetzt ist, aber 23 Streams sind aktuell benutzt, will ich das Abfragen.

              Um auf das Beispiel zurückzukommen:
              Wenn 1000 DB-Verbindungen erlaubt sind, soll der 10001ste keine mysql-Fehlermeldung erhalten, sonder das Script fragt bei jedem DB-zugriff ab wie viele Verbindungen gerade bestehen und wenn das 999 oder mehr sind, dann springe auf eine Seite mit Medlung "Zu voll... bitte warten!".

              Nochmal zu meiner ersten Frage:
              Wie viele DB-Connections sind sinvoll?
              Lag der Fehler evtl. nur daran, dass ich mysql_pconnect() statt mysql_connect() benutzt habe und die Verbindung daher gehalten wurde?

              Grüße,
              Andi

              Kommentar


              • #8
                Original geschrieben von andik2000
                Um auf das Beispiel zurückzukommen:
                Wenn 1000 DB-Verbindungen erlaubt sind, soll der 10001ste keine mysql-Fehlermeldung erhalten, sonder das Script fragt bei jedem DB-zugriff ab wie viele Verbindungen gerade bestehen und wenn das 999 oder mehr sind, dann springe auf eine Seite mit Medlung "Zu voll... bitte warten!".
                ach so war das gemeint.

                na ja, wo ist das problem?

                du bekommst doch schon eine fehlermeldung von der DB, dass der aktuelle verbindungsversuch einer zu viel war.
                das ist doch im prinzip schon genau das, was du willst: du fragst die DB (über mysql_(p)connect), "kannst du mir noch eine weitere verbindung geben?", und sie sagt halt einfach "nein".
                also ist das die antwort, auf die du dann entsprechend reagieren solltest.

                um diesen fehler von anderen datenbankfehlern abgrenzen zu können, schau dir mal mysql_erro() an.
                damit kannst du dann explizit auf die nummer des fehlers abfragen, und entsprechend reagieren.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  mysql_pconnect() ist das dümmste, was du machen kannst, also sollst du dich auch nicht wundern.

                  Kommentar


                  • #10
                    zum thema pconnect vs. connect gibt's hier übrigens auch schon threads, einfach mal suchen ...
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Stimmt, ich bekomme ja schon eine Fehlermeldung. Hatte mich nur noch nicht mit mysql_error() beschäftigt. So wirds dann wohl gehen.

                      Dann schaue ich mal was ich hier noch so zum Theme (p)connect finde.

                      Dank & Grüße
                      Andi

                      Kommentar


                      • #12
                        Dann schaue ich mal was ich hier noch so zum Theme (p)connect finde.
                        Ganz einfach: pconnect nicht benutzen, stattdessen connect. Oder die Keep-Alive-Zeit in der mySQL-Ini runtersetzen.

                        Kommentar

                        Lädt...
                        X