Még mindig - PDOException: SQLSTATE[42S02]

Egon képe

Ez a hiba még mindig nem lett megnyugtatólag rendezve, még akkor sem, ha ezen oldal szerint ( http://drupal.org/node/1058930 ) "fixed" csak éppen nem írják le, hogy hogyan.
Végigböngésztem a Drupal.hu fórumbejegyzéseit is, e témában befejezetlenül szakadnak félbe...mégis mit tudtak ezen felhasználók tenni? Mindent ledaráltak? Kérem írjátok meg!

Mert arra még lehet megoldást lelni, akinél a probléma a Drupal 7.x install legeslegelején jelentkezett. OK értem, ezeknek /install.php és reinstall.

De nekem fél éves napi Drupal (7.8) szerkesztés után jött elő a hiba először egy addig kifogástalanul működő oldalon - ráadásul két oldalon, egyszerre - így értelemszerűen nem szeretném kockáztatni, hogy az egész fél éves munkám elvesszen, vagy felülírjam. Szerintetek mit lehet tenni, hogy ne vesszen el az eddigi munkám?

Köszönöm a válaszokat!

Probléma leírás részletei :
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'XXX_XXX.semaphore' doesn't exist: SELECT expire, value FROM {semaphore} WHERE name = :name; Array ( [:name] => variable_init ) in lock_may_be_available() (line 167 of /home/XXX/public_html/XXX/includes/lock.inc).

Uncaught exception thrown in shutdown function.

PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'XXX_XXX.semaphore' doesn't exist: DELETE FROM {semaphore} WHERE (value = :db_condition_placeholder_0) ; Array ( [:db_condition_placeholder_0] => 188601314eecf3474ee7f3.42867305 ) in lock_release_all() (line 269 of /home/XXX/public_html/XXX/includes/lock.inc).

Fórum: 
Egon képe

Még annyi, hogy C-Panel PhPMyAdmin részét megnéztem és a két érintett oldalnál az összes tábla eltűnt (/nem látható?)...

0
0
gazsesz képe

Ha valóban az összes tábla eltűnt, akkor a szolgáltatónál van a gond és ha szerencséd van, akkor van mentés, amiből vissza lehet állítani.

Ha csak a semaphore tábla hiányzik, akkor próbaképpen más drupalból a struktúrát beimportálhatod, mert akkor látni fogja a táblát.

1
0

Gazsesz

Egon képe

Köszönöm a választ!
Nem, sajnos az összes tábla hiányzik :( Írtam a szolgáltatónak.

Ha ezeket mégsem tudják visszaállítani akkor viszont mit lehet tenni? Megvan a tárhelyen az a könyvtár (úgy tűnik) hiánytalanul, amibe a Drupalt telepítettem.

Ha a táblák eltűnnek, eltűnnek-e "örökre" az oldalak/node-ok, blogbejegyzések, ill. az azokhoz való hozzáférési lehetőség, vagy valahogyan visszahozhatók?

Pl. ha újra telepítem ugyanoda ugyanazt a Drupal verziót, létrehozom ugyanazokkal a beállításokkal azt a 2 db. usert, aki az oldalakat létrehozta plusz a Drupal könyvtár biztonsági mentéséből bizonyos mappákkal (gondolom : sites, modules, themes, (+?) plusz .htaccess, robots.txt, (+?) felülírom az újonnan telepítettekkel?
Köszi - Egon

0
0
balagan képe

Nekem is volt pár hónapja egy hasonló esetem, elszállt néhány innoDB táblám, de sikerült visszaállítani. Kérdés, hogy myISAM vagy innoDB táblákat használsz-e. Mindenképp a szolgáltatód kell zaklatni.

1
0
Egon képe

A kérdés jó, miért, csak az egyik típust lehet visszaállítani?

Az eltűnt táblákra nézve ugye nem tudom már megnézni, a további régebbi (Drupal 6.X) adatbázisainknál (ugyanott) viszont myISAM. A tegnapi kísérletezés miatt létehozott Drupal könyvtárnál viszont már (egyedüliként) innoDB. Az egész egyébként a https://ns7.cpanel.hu -n van. Köszi

0
0
aboros képe

ezzel a problémával a szolgáltatódat keresd fel.

1
0

-
clear: both;

Egon képe

Köszönök minden segitő hozzászólást! Igen, a szolgáltató volt a hunyó és tegyük hozzá a hiba jelzése után igen hamar helyre is állították az adatbázisokat.
Ha kicsit fapadosan is, de megpróbálom összefoglalni a tapasztaltakat mások okulására.
Tehát.

PDOException: SQLSTATE[42S02] jellegű hibával (min.) 3 esetben találkozhatunk :

1, Közvetlen Drupal x.y verzió telepítése után.
Ez esetben a megoldás : oldalad/install.php behívásával (újra)telepítés (új MySQL adatbázis)

2, A hibát az is kiválthatja, ha két Drupal alkalmazás egyszerre próbál hozzáférni ugyanahhoz a táblához. (pl. Két oldal teljesen azonos időben való mentése) Ez esetben adott tábla "eltűnhet" a MySQL adatbázisból. Ezt a fenti hibakód után ilyen jellegű üzenet közli :
"Base table or view not found: 1146 Table xxxxxxx.cache_update" > cache_update tábla hibája/hiánya

A táblát ilyen jellegű paranccsal lehet helyreállítani :
CREATE TABLE cache_update ( `cid` VARCHAR(255) NOT NULL DEFAULT '', `data` LONGBLOB DEFAULT NULL, `expire` INT NOT NULL DEFAULT 0, `created` INT NOT NULL DEFAULT 0, `headers` TEXT DEFAULT NULL, `serialized` SMALLINT NOT NULL DEFAULT 0, PRIMARY KEY (cid), INDEX expire (expire) )

3, Ha több vagy éppen az összes tábla hiányzik, (ezt pl. C-Panel esetén PhpMYadmin felületen lehet ellenőrizni) akkor igen valószínű, hogy a szolgáltatónál keletkezett a hiba. Ez esetben általában sikerrel kérhető a teljes MySQL adatbázis helyreállítása. Célszerű esetleg az adatbázis kiimportálásával saját biztonsági mentést is készíteni a jövőre nézve.

0
0
nevergone képe

A hibát az is kiválthatja, ha két Drupal alkalmazás egyszerre próbál hozzáférni ugyanahhoz a táblához.

És ezt így hogy…?

0
0
Egon képe

Lehet, hogy rosszul értelmeztem a lock.inc ezen sorait?

" In most environments, multiple Drupal page requests (a.k.a. threads or
* processes) will execute in parallel. This leads to potential conflicts or
* race conditions when two requests execute the same code at the same time. A
* common example of this is a rebuild like menu_rebuild() where we invoke many
* hook implementations to get and process data from all active modules, and
* then delete the current data in the database to insert the new afterwards."

0
0