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.
A hiba felismerése
Szekció neve “A hiba felismerése”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 orSET MAX_JOIN_SIZE=# if the SELECT is okayEz 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.
Fordulj a tárhelyhez
Szekció neve “Fordulj a tárhelyhez”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_SELECTSbeá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.
Az eredmény ellenőrzése
Szekció neve “Az eredmény ellenőrzése”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.
- 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.
- 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.
- 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.
A kerülőmegoldás telepítése
Szekció neve “A kerülőmegoldás telepítése”Csak a vezérlőpultot futtató WordPress-telepítésen végezd el. A Child-webhelyekre ne telepítsd a fájlt.
-
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.
-
A tárhely fájlkezelőjével vagy SFTP-vel nyisd meg a vezérlőpult-telepítés
wp-contentmappáját. Ha nincsmu-pluginsnevű mappa, hozd létre. A mappában lévő meglévő fájlokat hagyd meg. -
Hozz létre egy
mainwp-sql-big-selects-workaround.phpnevű egyszerű szöveges fájlt a teljes alábbi kóddal, a nyitó<?phpcí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-pluginsmappába told, a WordPress-telepítéshez viszonyított útvonala:wp-content/mu-plugins/mainwp-sql-big-selects-workaround.phpA fájlnév
.phpvégződésű legyen, ne.php.txt. Ha már van ilyen nevű fájl, őrizz meg egy másolatot a csere előtt. -
Ellenőrizd az eredményt. A WordPress automatikusan betölti a közvetlenül az
mu-pluginsmappá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.
A kerülőmegoldás eltávolítása
Szekció neve “A kerülőmegoldás eltávolítása”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.phpA 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: