I hit this interesting problem last night on 5.0.51a.
mysql> use information_schema;
mysql> desc routines;
ERROR 1 (HY000): Can't create/write to file '/home/tmp/#sql_fea_1.MYD' (Errcode: 24)
mysql> show create table routinesG
*************************** 1. row ***************************
Table: ROUTINES
Create Table: CREATE TEMPORARY TABLE `ROUTINES` (
`SPECIFIC_NAME` varchar(64) NOT NULL default '',
`ROUTINE_CATALOG` varchar(512) default NULL,
`ROUTINE_SCHEMA` varchar(64) NOT NULL default '',
`ROUTINE_NAME` varchar(64) NOT NULL default '',
`ROUTINE_TYPE` varchar(9) NOT NULL default '',
`DTD_IDENTIFIER` varchar(64) default NULL,
`ROUTINE_BODY` varchar(8) NOT NULL default '',
`ROUTINE_DEFINITION` longtext,
`EXTERNAL_NAME` varchar(64) default NULL,
`EXTERNAL_LANGUAGE` varchar(64) default NULL,
`PARAMETER_STYLE` varchar(8) NOT NULL default '',
`IS_DETERMINISTIC` varchar(3) NOT NULL default '',
`SQL_DATA_ACCESS` varchar(64) NOT NULL default '',
`SQL_PATH` varchar(64) default NULL,
`SECURITY_TYPE` varchar(7) NOT NULL default '',
`CREATED` datetime NOT NULL default '0000-00-00 00:00:00',
`LAST_ALTERED` datetime NOT NULL default '0000-00-00 00:00:00',
`SQL_MODE` longtext NOT NULL,
`ROUTINE_COMMENT` varchar(64) NOT NULL default '',
`DEFINER` varchar(77) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
I tried in on my MySQL 5.1 server without incident. In a few minutes of thinking about it, I was unable to determine the problem. Anybody care to guess?