Bekijk Volledige Versie : MySQL files corrupt (gekke rechten)
Plots heeft een mySQL table op onze deticated server gekke rechten gekregen en is de table corrupt.
Het gekke is ik kan hier niets mee, recovery mode van mysql werkt niet, kan geen bestanden verwijderen of chmodden als root. Ben dus machteloos.
Rechten van de bestanden:
?---rw---- 14392 825765936 1094201656 808464432 Aug 15 1995 dit_is_de_kapotte_table.frm
-rw-rw---- 1 mysql mysql 1408 Apr 15 02:11 dit_is_de_kapotte_table.MYD
b---r-sr-x 13363 1028862323 842150461 55, 57 Sep 24 2022 dit_is_de_kapotte_table.MYI
Heb al een fsck gedaan bij een reboot maar dat mocht helaas niet baten.
Heeft er iemand nog suggesties?
Met vriendelijke groet,
Stef Vergoossen
rechten lijken me goed te staan?
Kun je via PHPMYADMIN geen table repair doen?
Van de 1ste en 2de file staan fout?
? b etc zijn echt niet goed... Daarbij user en group zijn ook gek.
Nee werkt niet via phpmyadmin, can't find frm file, maar dat zal komen door de rechten...
Had ik idd niet goed gezien. Zat naar 1 tabel te kijken.
Je hebt geen root access? Of je kunt het simpel niet wijzigen als root?
Probeer anders eens mysqld te stoppen en dan alsnog eens te chmodden als root (als je root access hebt iig).
Ik heb root access en door mysql te stoppen kan ik het ook niet chmodden.
chmod: changing permissions of `dit_is_de_kapotte_table.frm': Operation not permitted
Probeer eerst eens de eigenaar weer goed te krijgen met
chown mysql:mysql dit_is_de_kapotte_table.*
Kun je de bestanden kopieren naar een andere partitie? Daar de eigenaar en de rechten goed zetten en dan weer terugzetten? (BTW, het staat toch niet op een NSF mount ?)
Wat zie je als je lsattr <file> doet?
Kopieren werkt niet, staat niet op nsf.
Lsattr werkt niet.
Het probleem is ook dat het MYI bestand als een block device wordt gezien...
cp: cannot open `dit_is_de_kapotte_table.MYI' for reading: No such device or address
lsattr: Operation not supported While reading flags on dit_is_de_kapotte_table.MYI
lsattr: Operation not supported While reading flags on dit_is_de_kapotte_table.frm
Filesystem RO? (type eens mount)
chattr -i file werkt ook niet?
Heb je fsck gedraait terwijl de partitie niet gemount was? En wat zegt je syslog en de mysql error log?
Als je je mysql log bekijkt, is dan in je innodb engine aan het loopen ? Mocht je er echt niet meer uit komen kan je in my.cnf het volgende opgeven: innodb_force_recovery = 2 , mysql restart
Daarna maak je een complete dump van je database, importeer deze ergens anders en kijk of hij compleet (genoeg) is. Vervolgens verwijder je database en maak hem opnieuw aan. Dit kun je overigens ook mysql db wide doen. Werkt zeer goed als je recovery log van innodb ook corrupt is.
Nee filesystem is niet ro, ik heb vanmorgen een reboot uitgevoerd met fsck dus toen was de partitie inderdaad nog niet gemount...
Met chattr -i krijg ik geen ouput en verandert er ook niets...
Het is trouwens geen innodb table he? Dus innodb recovery heeft dan geen zin?
> En wat zegt je syslog en de mysql error log?
- Syslog staat niets geks in;
- mySQL error-log ook niet.
Ja stomme opmerking misschien, maar heb je geen recente backup toevallig?
Het is trouwens geen innodb table he? Dus innodb recovery heeft dan geen zin?
Heb je nu wel of niet in je mysql log gekeken ?
- je datums kloppen ook niet (1995 - 2022)
- zit je partitie niet vol? (ooit megemaakt, kijk je makkelijk over ook..)
- mysql afsluiten met killall
- maak eens een groep aan met de groepsnummers die er staan, en steek mysql in de groep..
(mocht dat iets uitdoen, neem backup van je db en herbegin :))
- Ik heb in de mysql log file gekeken;
- Datums kloppen indeed niet, komt door de corrupt heid denk ik;
- Ik draai een aparte instantie van mysql dus ik kill hem sowieso helemaal;
- Groep zou ik kunnen proberen...
- Ik wil de tables best verwijderen alleen het gaat niet, misschien wel als ik het via een mysql restore doe?
Gewoon backup uitrollen op tijdelijke machine, en deze laten voor wat het is. Als je systeem zoveel vreemde dingen begint te vertonen, dan is dat vast niet voor niets...
Heb de database maar via command line gemoved en opnieuw aangemaakt... Hopelijk blijft het hierbij!
Bedankt voor jullie hulp!