#1286 - unknown table engine 'innodb', linux

#1286 - unknown table engine 'innodb', linux
2016-10-15T13:13:32+02:00
2016-10-22T13:06:48+02:00
2022-12-04T03:00:37+01:00
Ladányi Richárd
Sziasztok.
Két napja futottam bele egy olyan problémába, hogy a phpmyadminban egy bizonyos adatbázisban egy bizonyos táblát nem tudok megnyitni a következő hibaüzenettel:


#1286 - unknown table engine 'innodb'

Eddig tökéletesen működött (évekről van szó), most viszont úgy jelentették be nekem a hibát.
Sajnos nem vagyok szerverüzemeltető, nem én csináltam (aki csinálta, már nincs a cégnél).
A szerveren linux fut, nem vagyok jártas sajnos benne. Továbbá abban az adatbázisban többi tábla megy, meg azon kívül 20-25 adatbázis is szépen fut, csak ez az egy tábla akad ki teljesen.
Utána olvastam neten ezeknek, volt ahol
-a phpmyadmint javasolták, hogy rakjam újra,
- volt ahol indítsam újra a mysql-t,
- repair táblanévvel is próbálkoztam 
- innodb_buffer_pool_size-ot csökkentettem
- innodb_force_recoveryt is próbálgatattam (1-től 4-ig)
- ib_logfileokat pakolásztam/töröltem.
Egyik megoldással sem jártam sikerrel. Volt valaki, akinek nagyon hasonló problémája volt? Illetve mit javasoltok mit tegyek?

(1,5 hónapos mentésem van, brahiból exportáltam az összes adatbázist, mint utólag kiderült, nem állítottak be automatikus backupot/mentést sem)
Köszönöm előre is a segítséget.
Mutasd a teljes hozzászólást!
Csatolt állomány
és mentés betöltése megoldja a problémát MyISAM-mal.


Szóval ha nem tévedek, akkor amit ajánlottam, annak a válaszában nem volt innoDB?

Ha ezeket törlöm, mennyire befolyásolhatja a szervert?


Jelentősen, mert szabad hely fog keletkezni.





Bármelyik korábbit törölheted (...1 ...2)
Mutasd a teljes hozzászólást!

  • Szia!

    Az 'innodb' egy tárolómotor, mint a 'myisam' cak újabb.

    Elvileg csak le kell cserélni, hogy egységes legyen a többivel és kész.

    SET storage_engine=MYISAM; ALTER TABLE tabla_neve ENGINE = MyISAM;
    Üdv
    Mutasd a teljes hozzászólást!
  • Hali,

    Mindjárt kipróbálom, köszi



    ui: ugyan azt a hibaüzenetet kapom :(
    Mutasd a teljes hozzászólást!
  • Kis guglizás után kiderült, hogy elb@szódott log fájlok esetén is ezt írja.

    Próbáld kitörölni a log fájlokat: ib_logfile0 , ib_logfile1, stb
    de ne töröld az InnoDB data fájlt (ibdata1).

    Több ötletem nincs egyenlőre.

    Szerk: törlés után persze restart mysql..
    Mutasd a teljes hozzászólást!
  • Sajnos ez is megvolt és nem akart használni.
    Mutasd a teljes hozzászólást!
  • Szia,

    1. Létrehoznék egy teljesen friss teszt adatbázist, ugyanolyan beállításokkal, mint amivel a probléma van.
    2. Aztán létrehoznám a táblát üresen a teszt adatbázisban, aztán
    3. Export (csak a problémás tábla)
    4. Szemileg megnéz -> ellenőrzöd a kiexportált rekordokat, nem látsz-e benne furcsaságot. Illetve már az is sokat mond, hogy sikeres volt-e az export. 
    5. Import a teszt adatbázisba, ahol csak ez az egy tábla van. 
    6. Elvileg ennek így sikerülnie kéne. Azt meg nem tudom, hogy ez a hibaüzenet (#1286 - unknown table engine 'innodb') mit is akar mondani abban a környezetben, ahol dolgozol, ezt látni kéne. 
    7. Ha ez így sikerül, akkor mehet az adatbázis többi része is bele az új adatbázisba, aztán drop régi, átnevezés új. Persze előtte ments mindent, nehogy mentés nélkül maradj. 
    Mutasd a teljes hozzászólást!
  • 1; /etc/init.d/mysql stop
    2; rm ib_logfile0 ib_logfile1
    3; mv ibdata1 old_ibdata1
    4; ellenőrizd /etc/mysql/my.cnf

    [mysqld] datadir=/data/mysql/data socket=/var/run/mysqld/mysqld.sock #Not a must to define the following innodb_log_file_size=1G innodb_file_per_table=1 innodb_flush_method=O_DIRECT innodb_buffer_pool_size=1G innodb_data_file_path=ibdata1:10M:autoextend innodb_lock_wait_timeout=18000
    5; /etc/init.d/mysql start
    6; mysql> show variables like 'have_innodb';
    Mutasd a teljes hozzászólást!
  • Szia!

    Én azért a kályhától kezdeném, tehát hogy a

    mysql> show engines;
    mit ad válaszul?
    Mutasd a teljes hozzászólást!
  • Sziasztok újra.
    Kicsit eltűntem, sorry ezért, viszont vannak fejlemények.
    Gyorstalpalón utánajártam ezeknek és arra jutottam, hogy egyszerűen a mentést az adattábla törlése és mentés betöltése megoldja a problémát MyISAM-mal.

    A következő problémába futottam bele. A Linuxban a /var mappa 99%-os helyet foglalt el, így amikor betelt, roncsolódhattak az adatok, leállt a szerver stb.

    Találtam a /var/log/apache2 mappában olyat, hogy error.log meg error.log1 fájlt, ami iszonyatosan hatalmas fájl, (error.log 1 560 420 830, error.log1 meg 2 260 926 418...most byte vagy kilobyte azt sajnos nem tudom). Ha ezeket törlöm, mennyire befolyásolhatja a szervert?



    root@buddl01:/var/log# cd apache2
    root@buddl01:/var/log/apache2# du -h
    3.7G .
    root@buddl01:/var/log/apache2# ls -la
    total 3807544
    drwxr-x--- 2 root adm 4096 Oct 16 07:52 .
    drwxr-xr-x 16 root root 4096 Oct 22 07:48 ..
    -rw-r----- 1 root adm 38374669 Oct 22 11:52 access.log
    -rw-r----- 1 root adm 39116486 Oct 16 07:52 access.log.1
    -rw-r----- 1 root adm 1560420830 Oct 22 11:52 error.log
    -rw-r----- 1 root adm 2260926418 Oct 16 07:52 error.log.1
    -rw-r--r-- 1 root root 0 May 2 2012 other_vhosts_access.log
    Mutasd a teljes hozzászólást!
  • és mentés betöltése megoldja a problémát MyISAM-mal.


    Szóval ha nem tévedek, akkor amit ajánlottam, annak a válaszában nem volt innoDB?

    Ha ezeket törlöm, mennyire befolyásolhatja a szervert?


    Jelentősen, mert szabad hely fog keletkezni.





    Bármelyik korábbit törölheted (...1 ...2)
    Mutasd a teljes hozzászólást!
  • csináltam egy mentést, töröltem az error.log.1-et, így minden megoldódott :)
    Köszönöm a segítséget :)
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd