Tovább a tartalomhoz

MAX_JOIN_SIZE hibák megoldása

Az 1104-es adatbázishiba felismerése, a tárhelynél kérendő megoldás és egy nem támogatott kerülőmegoldás.

Egy adatbázis-lekérdezési korlát megakadályozhatja, hogy a vezérlőpult megjelenítse a Child-webhelyeket a Webhelyek kezelése oldalon és a webhelyválasztókban. Más, webhelyadatokat lekérő műveletek is érintettek lehetnek.

Először fordulj a tárhelyszolgáltatóhoz: az ajánlott megoldás olyan tárhelybeállítás, amely lehetővé teszi a vezérlőpult lekérdezéseinek lefutását. Az alábbi kerülőmegoldást csak akkor használd, ha a szolgáltató nem tud megfelelő megoldást adni, és megerősíti, hogy a munkamenet-felülbírálás megengedett.

Előfeltétel: ismered az adatbázishiba szövegét (a vezérlőpult vagy a tárhely jelzi), tudsz kapcsolatba lépni a vezérlőpult tárhelyének ügyfélszolgálatával, és a kerülőmegoldáshoz friss mentésed van, és fájlkezelő- vagy SFTP-hozzáférésed a WordPress-telepítéshez.

Ez a fejezet akkor érvényes, ha a vezérlőpult hibanaplójában ehhez hasonló üzenet szerepel:

The SELECT would examine more than MAX_JOIN_SIZE rows;
check your WHERE and use SET SQL_BIG_SELECTS=1 or
SET MAX_JOIN_SIZE=# if the SELECT is okay

Ez az 1104-es adatbázishiba. Az üres webhelylista önmagában nem bizonyítja, hogy ez az ok. Ha nincs meg a hibaüzenet, kérd a tárhelyet, hogy nézzék meg az adatbázishibákat, amíg megismétled az érintett műveletet. A WordPress hibanaplójának gyűjtéséről a hibanaplózásról szóló fejezet szól. Ha a hibát más művelet közben (például egy üzemidő-ellenőrzésnél) rögzítették, az azt mutatja, hogy a korlát ezt a lekérdezést is érinti. Hogy ez az üres Webhelyek kezelése táblázatot is megmagyarázza-e, azt úgy ellenőrizheted, hogy a táblázat betöltésekor is jelentkezik-e ugyanez a hiba.

Miért lehet mégis helyes a webhelyszám

Szekció neve “Miért lehet mégis helyes a webhelyszám”

A MAX_JOIN_SIZE azt korlátozza, hány sort vizsgálhat meg becslés szerint egy adatbázis-lekérdezés. Ez lekérdezés-feldolgozási korlát, nem a kezelhető Child-webhelyek számának korlátja. A vezérlőpult több táblát összekapcsoló lekérdezésekkel olvassa a webhelyek adatait. Egy egyszerűbb webhelyszámláló lekérdezés még lefuthat, miközben a webhelylista lekérdezése hibázik. A rendszerjelentés ezért a várt webhelyszámot mutathatja, miközben a Webhelyek kezelése üres. Ez önmagában nem jelenti, hogy a webhelyadatok törlődtek, vagy hogy az adatbázist javítani kell.

Küldd el a pontos adatbázishibát a vezérlőpultot futtató szolgáltatónak, és kérd meg, hogy vizsgálják meg:

  • tartósan bekapcsolhatják-e az SQL_BIG_SELECTS beállítást a vezérlőpult által használt WordPress-adatbázis-kapcsolatokra;
  • megfelelően módosíthatják-e a MAX_JOIN_SIZE értékét a tárhelykörnyezetnek megfelelően.

A szolgáltató dönti el a megfelelő beállítást, és ő értékeli az adatbázis teljesítményét. Küldhetsz ehhez hasonló üzenetet:

A MainWP vezérlőpultom az 1104-es adatbázishibát kapja: „The SELECT would examine more than MAX_JOIN_SIZE rows.” A webhelylisták érintettek. Kérlek, vizsgáljátok meg a korlátot, és adjatok tartós megoldást a vezérlőpult WordPress-adatbázis-kapcsolataira, például az SQL_BIG_SELECTS bekapcsolását vagy a MAX_JOIN_SIZE módosítását. Ha egyik sem lehetséges, kérlek, erősítsétek meg, hogy az alkalmazásszintű SQL_BIG_SELECTS munkamenet-felülbírálás megengedett.

A SET SESSION SQL_BIG_SELECTS = 1 egyszeri futtatása a phpMyAdminban csak az adott kapcsolat munkamenetét módosítja. A WordPress külön adatbázis-kapcsolatait nem állítja be.

Ismételd meg ezeket a lépéseket, miután a szolgáltató módosította a beállítást, vagy miután telepítetted a kerülőmegoldást.

  1. Nyisd meg a Webhelyek → Webhelyek kezelése oldalt, és nézd meg, megjelennek-e a Child-webhelyek. Az alábbi szűrővisszaállításhoz használd a táblázatos nézetet.
  2. Ha a lista üres marad, az állapotszűrőben válaszd a Csatlakoztatva értéket, kattints a Szűrés gombra, majd a Visszaállítás gombra, hogy visszatérj az összes állapothoz. A visszaállítás a táblázatos nézetben a Webhelyek kezelése gyorsítótárazott találatait is törli. Ha a Visszaállítás gomb már elérhető, közvetlenül is rákattinthatsz.
  3. Ismételd meg az érintett műveleteket: nézd meg a korábban üres webhelyválasztókat, és próbálj szinkronizálni egy webhelyet. Kérd meg a szolgáltatót, hogy nézze az 1104-es hiba új előfordulásait, amíg megismétled a korábban hibázó műveletet, vagy nézd át a hibanaplót, ha hozzáférsz.

Ha az adatbázishiba megmarad, küldd el az új hibát a tárhelynek. Ha az 1104-es hiba megszűnt, de a webhelyek továbbra is hiányoznak, fordulj a MainWP támogatásához a vezérlőpult verziójával, a megmaradt tünetekkel és a szolgáltató válaszával.

Opcionális, nem támogatott kerülőmegoldás

Szekció neve “Opcionális, nem támogatott kerülőmegoldás”

Ez a kerülőmegoldás nem beépített MainWP-funkció, és nem része a MainWP támogatott konfigurációjának. Csak akkor fontold meg, ha már fordultál a tárhelyhez, a szolgáltató nem tud megfelelő tárhelyoldali megoldást adni, és megerősíti, hogy a munkamenet-felülbírálás megengedett. A megoldás megkerüli a lekérdezésméret-korlátot az ugyanazt a WordPress-adatbázis-kapcsolatot használó összes lekérdezésre, a más bővítményekéire is. Nem optimalizálja a lekérdezéseket, és nem javítja a hiányzó indexeket. A teljesítménnyel kapcsolatos kérdéseket beszéld meg a szolgáltatóval: a sikeres eredmény nem bizonyítja a hosszú távú kompatibilitást vagy teljesítményt.

A kerülőmegoldás egy kis WordPress „must-use” bővítménnyel futtatja a SET SESSION SQL_BIG_SELECTS = 1 parancsot. Ettől az adatbázis az aktuális kapcsolatra figyelmen kívül hagyja a MAX_JOIN_SIZE értékét, a szerver globális beállításának módosítása nélkül.

Csak a vezérlőpultot futtató WordPress-telepítésen végezd el. A Child-webhelyekre ne telepítsd a fájlt.

  1. Készíts friss mentést a vezérlőpult adatbázisáról és fájljairól, és ellenőrizd, hogy sikeresen lefutott. Tartsd elérhetően a fájlkezelőt vagy az SFTP-t, hogy szükség esetén el tudd távolítani a kerülőmegoldást.

  2. A tárhely fájlkezelőjével vagy SFTP-vel nyisd meg a vezérlőpult-telepítés wp-content mappáját. Ha nincs mu-plugins nevű mappa, hozd létre. A mappában lévő meglévő fájlokat hagyd meg.

  3. Hozz létre egy mainwp-sql-big-selects-workaround.php nevű egyszerű szöveges fájlt a teljes alábbi kóddal, a nyitó <?php címkével együtt:

    <?php
    /**
    * Plugin Name: MainWP Dashboard SQL_BIG_SELECTS Workaround
    * Description: Enables large SELECT queries for the current WordPress database session.
    * Version: 1.0.0
    */
    if ( ! defined( 'ABSPATH' ) ) {
    exit;
    }
    global $wpdb;
    $wpdb->query( 'SET SESSION SQL_BIG_SELECTS = 1' );

    A fájlt közvetlenül az mu-plugins mappába told, a WordPress-telepítéshez viszonyított útvonala:

    wp-content/mu-plugins/mainwp-sql-big-selects-workaround.php

    A fájlnév .php végződésű legyen, ne .php.txt. Ha már van ilyen nevű fájl, őrizz meg egy másolatot a csere előtt.

  4. Ellenőrizd az eredményt. A WordPress automatikusan betölti a közvetlenül az mu-plugins mappában lévő PHP-fájlokat a normál bővítmények előtt, bekapcsolni nem kell. Kövesd az „Az eredmény ellenőrzése” szakaszt. Ha a kerülőmegoldás új problémát okoz, távolítsd el a fájlt az alábbiak szerint.

Ha a tárhely tartós megoldást adott, távolítsd el a kerülőmegoldást, és ismételd meg az eredmény ellenőrzését. A fájlkezelővel vagy SFTP-vel csak ezt a fájlt töröld:

wp-content/mu-plugins/mainwp-sql-big-selects-workaround.php

A többi must-use bővítményt hagyd meg. A must-use bővítményeket a szokásos WordPress-bővítményoldalról nem lehet kikapcsolni: a felülbírálás alkalmazását a fájl törlésével állíthatod le, a WordPress következő betöltésétől kezdve. Ha az alapul szolgáló adatbázis-korlát megmarad, az 1104-es hiba az eltávolítás után visszatérhet.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások