mixmastertobsi: mysql Verbindung bruacht sehr lange

Hallo,

ich bin gerade dran einen neuen Web-Server zu konfigurieren.

Beim alten Webserver läuft MySQL sehr schnell. DIe Eisntellungen von dort habe ich soweit übernommen.
Beim neuen Webserver braucht folgende MySQL Anfrage bereits eine Sekunde.
An was kann das liegen? Beim alten Server war MySQL 5.1.41 installiert...

Apache 2.4.2, MySQL 5.5.27, PHP 5.4.7

$db = mysql_connect($dbserver, $dbuser, $dbpass);

die('Verbindung schlug fehl: ' . mysql_error());

  1. Tach!

    Beim neuen Webserver braucht folgende MySQL Anfrage bereits eine Sekunde.
    An was kann das liegen? Beim alten Server war MySQL 5.1.41 installiert...

    Hinweise zu versionsspezifischen Änderungen stehen in der MySQL-Dokumentation. Weitere Hinweise können Logfiles geben, die man jedoch gelegentlich erst aktivieren oder in puncto Level/Geschwätzigkeit hochdrehen muss. Zudem kann auch ein Blick in die System-Logs nicht schaden.

    $db = mysql_connect($dbserver, $dbuser, $dbpass);

    Daraus ist keine Ursache zu entnehmen. Das ist so 0815, wie es alle anderen ohne Probleme auch machen.

    die('Verbindung schlug fehl: ' . mysql_error());

    Das die() wird immer ausgeführt. Das ist sicher nicht dein originaler Code. Wobei der bei der Ursachenfindung sicher nicht weiter helfen wird, falls du nicht auf PHP-Seite eine Verzögerung drin hast. Aber das wirst du sicher ausgeschlossen haben, indem du vor und nach dem Starten des mysql_connect() die Zeit genommen hast. Abgesehen davon ist ein abruptes Abbrechen der Verarbeitung kaum ein sinnvolles Verhalten gegenüber dem Webseitenbesucher.

    dedlfix.

  2. Beim neuen Webserver braucht folgende MySQL Anfrage bereits eine Sekunde.

    Das ist keine "Anfrage", sondern ein Verbindungsaufbau. Der kann, wenn der MySQL-Server und der Client (in dem Fall PHP auf dem Webserver) zwei verschiedene Hosts sind durchaus auch mal länger dauern.

    Beispiel:

    Wenn also der Client (in dem Fall PHP auf dem Webserver), der MySQL-Server in Kanada und der womöglich auch zu befragende DNS-Server in Australien stehen gehen die für einen Connect benötigten Daten insgesamt ein paar Mal um die Welt - weil Daten hin- und her geschickt werden (Sieh Dir allein mal die Protokolle für TCP an...) Und die bewegen sich auch maximal mit Lichtgeschwindigkeit, verzögert durch jeden Router unterwegs.

    Für eine bessere Aussage hast Du zu wenig Informationen geliefert.

    1. Hallo,

      vielen Dank für Eure Nachrichten!

      Der Apache und MySQL laufen auf dem selben Server. Die Daten müssen daher nicht um die Welt geschickt werden.

      Zum Test habe ich mal auf diesem Server Apache 2.2 mit PHP 5.3 installiert - und siehe da....die Verbindung wird sehr schnell aufgebaut.
      Aus meiner Sicht liegt es an PHP 5.4.7 - aber was?!?

      PHP-Konfig habe ich auch bereits verglichen - keine nennenswerte Unterschiede...

      Liegt es ggf. an der Mysqli Client API library version

      PHP 5.3 = 5.1.41
      PHP 5.4 = mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $

      1. Betriebssystem?

        Ich könnte es mir mal mal in einer VM ansehen ...

  3. Hi,

    hast du auf dem Server, unter selbem Benutzer, noch weitere Scripte laufen, die stark frequenziert sind?
    Ich weiß leider, dass nicht sauber geschlossene Verbindungen zur DB, die Zeit bei neuen Verbindungen hoch schieben, da auf alte Verbindungen gewartet wird. Vllt kann dir auch das helfen!

    Ansonnsten wie bei den anderen => zu wenig infos