incorrect key file for table
#126 - Incorrect key file for table '/tmp/#sql_2a96_0.MYI'; try to repair it
En repareren helpt niet. Waar kan dit aan liggen? Wat kan ik er aan doen?
En nu deze:
#1030 - Got error 28 from storage engine
Gewijzigd op 01/01/1970 01:00:00 door S -
edit: typo en een link naar een artikel over het repareren van tabellen.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Ik heb geen backup. Maar het is alleen als ik met phpmyadmin de structuur wil bekijken. Bij de inhoud doet ie dat niet.
Dan zou ik zeker nu eerst een MySQL dump maken, als dat lukt.
dat heb ik nu gedaan. Moet ik nu de tabel verwijderen en opnieuw maken?
• oude tabel een andere naam geven
• nieuwe aanmaken
Dat heb ik gedaan. Maar die is ook corrupt. Zelfde error.
#126 - Incorrect key file for table '/tmp/#sql_2a96_0.MYI'; try to repair it
Je kan ook een php script maken, dat alle records uit een tabel naar een nieuwe tabel schrijft... Dus gewoon een tabel maken die exact hetzelfde is als je corupte tabel, en dan het php script erop los laten :)
Maar dat is hetzelfde als een backup. Wat kan er fout zijn?
Geef de tabelstructuur eens Steven? Die uit je MySQL dump?
CREATE TABLE `phpbb_users` (
`user_id` mediumint(8) NOT NULL,
`user_active` tinyint(1) default '1',
`username` varchar(25) NOT NULL,
`user_password` varchar(32) NOT NULL,
`user_session_time` int(11) NOT NULL default '0',
`user_session_page` smallint(5) NOT NULL default '0',
`user_lastvisit` int(11) NOT NULL default '0',
`user_regdate` int(11) NOT NULL default '0',
`user_level` tinyint(4) default '0',
`user_posts` mediumint(8) unsigned NOT NULL default '0',
`user_timezone` decimal(5,2) NOT NULL default '0.00',
`user_style` tinyint(4) default NULL,
`user_lang` varchar(255) default NULL,
`user_dateformat` varchar(14) NOT NULL default 'd M Y H:i',
`user_new_privmsg` smallint(5) unsigned NOT NULL default '0',
`user_unread_privmsg` smallint(5) unsigned NOT NULL default '0',
`user_last_privmsg` int(11) NOT NULL default '0',
`user_login_tries` smallint(5) unsigned NOT NULL default '0',
`user_last_login_try` int(11) NOT NULL default '0',
`user_emailtime` int(11) default NULL,
`user_viewemail` tinyint(1) default NULL,
`user_attachsig` tinyint(1) default NULL,
`user_allowhtml` tinyint(1) default '1',
`user_allowbbcode` tinyint(1) default '1',
`user_allowsmile` tinyint(1) default '1',
`user_allowavatar` tinyint(1) NOT NULL default '1',
`user_allow_pm` tinyint(1) NOT NULL default '1',
`user_allow_viewonline` tinyint(1) NOT NULL default '1',
`user_notify` tinyint(1) NOT NULL default '1',
`user_notify_pm` tinyint(1) NOT NULL default '0',
`user_popup_pm` tinyint(1) NOT NULL default '0',
`user_rank` int(11) default '0',
`user_avatar` varchar(100) default NULL,
`user_avatar_type` tinyint(4) NOT NULL default '0',
`user_email` varchar(255) default NULL,
`user_icq` varchar(15) default NULL,
`user_website` varchar(100) default NULL,
`user_from` varchar(100) default NULL,
`user_sig` text,
`user_sig_bbcode_uid` char(10) default NULL,
`user_aim` varchar(255) default NULL,
`user_yim` varchar(255) default NULL,
`user_msnm` varchar(255) default NULL,
`user_occ` varchar(100) default NULL,
`user_interests` varchar(255) default NULL,
`user_op0` varchar(255) default NULL,
`user_op1` varchar(255) default '2',
`user_op2` varchar(255) default NULL,
`user_op3` varchar(255) default NULL,
`user_size` int(1) default '1',
`user_coord8` varchar(255) NOT NULL,
`user_coord7` varchar(255) NOT NULL,
`user_plan8` varchar(255) NOT NULL,
`user_plan7` varchar(255) NOT NULL,
`user_rank8` varchar(255) NOT NULL,
`user_rank7` varchar(255) NOT NULL,
`user_uni7` varchar(255) NOT NULL,
`user_uni8` varchar(255) NOT NULL,
`user_actkey` varchar(32) default NULL,
`user_newpasswd` varchar(32) default NULL,
`user_uni` int(1) NOT NULL,
`user_score7` int(8) NOT NULL,
`user_score8` int(8) NOT NULL,
`user_coor01` varchar(255) NOT NULL,
`user_coor02` varchar(255) NOT NULL,
`user_coor03` varchar(255) NOT NULL,
`user_coor04` varchar(255) NOT NULL,
`user_coor05` varchar(255) NOT NULL,
`user_coor06` varchar(255) NOT NULL,
`user_coor07` varchar(255) NOT NULL,
`user_coor08` varchar(255) NOT NULL,
`user_coor11` varchar(255) NOT NULL,
`user_coor12` varchar(255) NOT NULL,
`user_coor13` varchar(255) NOT NULL,
`user_coor14` varchar(255) NOT NULL,
`user_coor15` varchar(255) NOT NULL,
`user_coor16` varchar(255) NOT NULL,
`user_coor17` varchar(255) NOT NULL,
`user_coor18` varchar(255) NOT NULL,
`user_naam01` varchar(255) NOT NULL,
`user_naam02` varchar(255) NOT NULL,
`user_naam03` varchar(255) NOT NULL,
`user_naam04` varchar(255) NOT NULL,
`user_naam05` varchar(255) NOT NULL,
`user_naam06` varchar(255) NOT NULL,
`user_naam07` varchar(255) NOT NULL,
`user_naam08` varchar(255) NOT NULL,
`user_naam11` varchar(255) NOT NULL,
`user_naam12` varchar(255) NOT NULL,
`user_naam13` varchar(255) NOT NULL,
`user_naam14` varchar(255) NOT NULL,
`user_naam15` varchar(255) NOT NULL,
`user_naam16` varchar(255) NOT NULL,
`user_naam17` varchar(255) NOT NULL,
`user_naam18` varchar(255) NOT NULL,
`user_kristal` decimal(11,2) NOT NULL default '1.00',
`user_metaal` decimal(11,2) NOT NULL default '1.00',
`user_points` decimal(11,2) NOT NULL default '1.00',
PRIMARY KEY (`user_id`),
KEY `user_session_time` (`user_session_time`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Gewijzigd op 01/01/1970 01:00:00 door S -
Alleen de structuur he, niet de INSERT INTO regels. Zet hem anders even als een TXT file online.
dit artikel over normalisatie en ga er eens mee aan de slag.
Voor de juiste datatypes, kun je hoofdstuk 11 van de MySQL-handleiding eens doornemen. Datums en tijden sla je bijvoorbeeld op in een DATE, DATETIME of TIME. Daar komt echt geen VARCHAR, INT of wat voor andere rotzooi aan te pas.
Succes!
Zo te zien heb je ook nog een ernstig probleem met het databasemodel. Je hebt de boel niet genormaliseerd, dit kan nog hele grote problemen gaan opleveren. Zie Voor de juiste datatypes, kun je hoofdstuk 11 van de MySQL-handleiding eens doornemen. Datums en tijden sla je bijvoorbeeld op in een DATE, DATETIME of TIME. Daar komt echt geen VARCHAR, INT of wat voor andere rotzooi aan te pas.
Succes!
Als ik met die query dezelfde tabel creëer op mijn locale installatie kan ik gewoon de structuur bekijken zonder foutmelding. Draai jij ook locaal? Dan zou je kunnen proberen het bestand /tmp/#sql_2a96_0.MYI tijdelijk even de extensie .zzz te geven en daarna de tabel opnieuw aanmaken en vullen.
Is het mogelijk om met een corrupte database verder te werken? Op dit moment heb ik geen problemen op het forum. Alles doet het nog.
Gewijzigd op 01/01/1970 01:00:00 door S -
Dat weet ik niet. Als je de structuur niet meer met phpMyAdmin kunt bekijken en veranderen zou het kunnen dat er ook queries stuk gaan lopen vroeg of laat.
Ja klopt, dit is nu het geval. Alleen de SELECT doet het nog volgens mij. Ik ben van plan de hele database eruit te knikkeren en een nieuwe te maken. Het probleem kan toch niet aan de tabellen liggen?
In de scripts moet de tabelnaam dan natuurlijk ook aangepast worden. Verder een goede tutorial over normalisatie lezen, zoals reeds gezegd. Als je een nieuwe opzet gaat maken is dat hét moment om je daarin te verdiepen.
Het probleem is blijkbaar nu ook bij de andere tabellen aan de gang. Hier krijg ik die melding ook regelmatig. Ik denk dus dat het niet alleen met die tabel te maken heeft maar met de hele database.