Ik krijg continue deze foutmelding bij mijn database tabel:

#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
Dat is een hele lange. Komt van phpbb. Maar nu heb ik er dingen aan toegevoegd. Hier heb ik nog nooit problemen mee gehad:

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;
Alleen de structuur he, niet de INSERT INTO regels. Zet hem anders even als een TXT file online.
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 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!
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.
Nee, het is niet lokaal.

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.
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?
Ik ken de melding waarmee je topic begint niet uit mijn hoofd, maar je zou het uit kunnen testen door de naam van de tabel in de MySQL dump te veranderen en hem opnieuw aan te maken.

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.

Reageren