MYSQL 5.7 "crashes" on SELECT DISTINCT query

  • Rufe ich meine home.php im eingeloggten Zustand auf dann läd die Seite ewig.
    Nur ein Neustart von MYSQL behebt das Problem.

    Folgender MYSQL Prozess wird geöffnet wenn ich die home.php aufrufe:
    Dieser scheint mysql zu crashen oder overloaden oder was auch immer:

    Zitat

    yourwbb_root localhost yourwbb_wbb2 Query 4 Sending data SELECT DISTINCT p.userid, t.*, b.boardid, b.title, b.hotthread_reply, b.hotthread_view, b.postsperpa

    Wenn ich in der home.php folgenden Code ausklammer geht es wieder einwandfrei:

    Code
    if ($wbbuserdata['userid']) {
    	 	$ywhome_ownuserid = "DISTINCT p.userid,";
    	 	$ywhome_ownjoin = "LEFT JOIN bb".$n."_posts p ON (t.threadid = p.threadid AND p.userid = '$wbbuserdata[userid]')";
    	} else {
    	 	$ywhome_ownuserid = '';
    	 	$ywhome_ownjoin = '';	
    	}

    Ich denke daher das DISTINCT das Problem auslöst?
    Nur wieso?

    ich hab in der mysql konfigurationsdatei

    sql_mode=MYSQL40 eingetragen hat das damit was zu tun?

    war mein fix hierfür:
    https://stackoverflow.com/questions/3466…-value-in-mysql

    Hoffe ihr könnt mir helfen.



    am sql_mode liegt es nicht hab ich grad entfernt hat nichts gebracht.
    nur strict_mode rausnehmen hat auch nichts gebracht.

    Weiß keiner rat?

    Einmal editiert, zuletzt von winfreak (11. Oktober 2018 um 21:28)

  • Dieser fehler macht mich verrückt.

    wenn ich ein frisches wbb2 installiere und da den homeseiten hack funktioniert es einwandfrei.
    auch mit der home.php aus dem forum das probleme macht.
    Serverload im ACP steigt bei dem problem übrigens auf 200% an.

    Das Problem ist das dieser Query beim hauptforum für immer data sendet und dann andere somit in die warteschleife hängt.

    Eig muss es doch an den mysql einstellungen liegen oder? nur wo?
    vllt. auch weil in dem fall viele daten abzufragen sind???

  • Cpanel support

    Zitat


    Hi there,

    I can see what is happening, but it will likely require a qualified systems administrator to get involved as it appears to be a problem with the running query.

    The query you already mentioned comes up first, then it seems to hold the table in a lock under a state of "Sending data". While it's doing this, other queries start to build up and they're stuck waiting because the table is locked.

    Ja das ist genau das was ich auch schon weiß, ne lösung hat er nicht parat.
    zumal das script auf dem alten server 1:1 lief und nur hier probleme macht.

    warum???

  • Zitat


    While reviewing the query, I see that this is a 'SELECT DISTINCT'. Since the DISTINCT variable is being passed, this adds a step to sort the queries row information and will normally increase run times of queries. There are a couple ways to work around this, such as using a GROUP by or indexing instead. Since you indicated that you do not want to modify the code, you may instead want to work with a system administrator to adjust your optimization settings in the my.cnf.

    In some cases, increasing certain variables(especially memory usage and temp table sizes) can allow for faster completion of large/slow queries like the one being generated. Most likely, the original host had more verbose settings that allowed this query to complete in a faster timeframe. Since your server has a large amount of available RAM(64G), the Mysql settings could be greatly increased for memory usage. Due to the potential impact to server stability, it is strongly recommended that you work with a qualified system administrator when customizing the Mysql settings.

    Jemand plan von mysql und was genau ich in der my.cnf anpassen könnte?

  • Lokal mit Uwamp funktioniert es mit MYSQL 5.7 ohne Probleme.

    This drive me nuts

    Hat hier keiner Ahnung von Servern???



    Hier noch paar infos vllt. hilft das ja weiter ^^

    Einmal editiert, zuletzt von Michael_ (12. Oktober 2018 um 06:59)

  • Hast du max_allowed_packet und vor allem max_execution_time (ab 5.7.4 bis exkl. 5.7.8) bzw. max_statement_time (ab 5.7.8) zur Rumtime schon überprüft? Letzteres wird die Laufzeit nicht verbessern, aber zumindest ein Ergebnis liefern, wenn es an der schieren Ausführzeit hängen sollte. Ich befürchte aber, die Default-Werte sind schon sehr mild und führten dich schließlich doch wieder in den Performance-Fix-Bereich.

    • • • – • – – • – –

  • Problem gelöst, es wurden irgendwie beim DB import die indexe disabled -.-
    Scheint beim importieren des Backups was schiefgelaufen zu sein weil das backup ist ok das hab ich am alten server und lokal mit dem selben tool nochmals eingespielt und funktioniert hier einwandfrei.

    Wäre diesmal beinahe wahnsinnig geworden dieses problem hatte es in sich.

  • Noch ist das Problem nicht zu 100% gelöst das forum läuft zwar aber ich hab die datenbank grad nochmal geleert und das backup erneut mit mysqldumper eingespielt, gleicher fehler wieder.
    muss wieder die keys manuell enablen.

    Wenn ich lokal mit UWamp das selbe backup auch mit mysqldumper einspiele funktioniert es und die keys sind direkt enabled und alles läuft.

    WIESO???

  • Zitat

    Was ist MySQLDumper ?
    Dieses Projekt wird nicht länger weiter entwickelt. Auf Github befindet sich das Repository mit dem letzten Stand.

    Gibt es einen Grund, warum du das anstelle den offiziellen Backup-Werkzeugen von MySQL nutzt? Du scheint immerhin Shell-Zugang zu haben, also kannst du auch mysqldump ausführen, das dir den Inhalt einer Datenbank als SQL-Skript inklusive aller Indizes zurückliefert. Sogar aus PHP heraus, wenn du unbedingt willst.

    PHP
    <?php
    $dbuser = 'username';
    $dbpassword = 'password';
    $dbname = 'dbname';
    header('Content-Type: text/plain;charset=utf-8');
    putenv("MYSQL_PWD={$dbpassword}");
    passthru("mysqldump --user={$dbuser} {$dbname}");

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!