Another incident. Yesterday evening, I issued on the master ALTER TABLE `secPage` ADD `sp_tmstmp` TIMESTAMP NOT NULL; The XP slave says: MySQL XP>desc secPage; +-----------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | | sp_tmstmp | timestamp(14) | YES | | NULL | | +-----------+-----------------------+------+-----+---------+----------------+ 5 rows in set (0.13 sec) I did not check the Debian slave; right now I issued a SELECT `idSc`,`sp_tmstmp` FROM `secPage` WHERE 1 AND `idEdSc` = 340 AND `keySc` = 18 and got Unknown column 'sp_tmstmp' in 'field list' Issueing the statement manually went through: MySQL Debian>ALTER TABLE `secPage` ADD `sp_tmstmp` TIMESTAMP NOT NULL; Query OK, 4718 rows affected (12 min 45.62 sec) Records: 4718 Duplicates: 0 Warnings: 0 I'm sure I had no error on the Debian slave; I check the slave every minute. If I encounter an error and the slave stopped in consequence, I issue a SET GLOBAL SQL_SLAVE_SKIP_COUNTER and start the slave again, then send me an email with all the information of interest. As I didn't receive an email, I conclude that the slave did not trigger an error. Well, I remember that I even checked the log of the slave before to find that the statement wasn't in the slave log. So it looks like the slave didn't get the statement to begin with. Now a test. Copy that table definition on master: MySQL Master>CREATE TABLE `secPage2` ( `idSc` mediumint(8) unsigned NOT NULL auto_increment, `idEdSc` smallint(5) unsigned NOT NULL default '0', `keySc` tinyint(3) unsigned NOT NULL default '0', `itemSc` mediumtext NOT NULL, `sp_tmstmp` timestamp(14) NOT NULL, PRIMARY KEY (`idSc`), UNIQUE KEY `ik` (`idEdSc`,`keySc`), FULLTEXT KEY `itemSc` (`itemSc`) ) TYPE=MyISAM; What does the Debian slave say? MySQL Debian>desc secPage2; +-----------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | | sp_tmstmp | timestamp(14) | YES | | NULL | | +-----------+-----------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) MySQL Master>ALTER TABLE `secPage2` DROP `sp_tmstmp`; MySQL Debian>desc secPage2; +--------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | +--------+-----------------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) Good! MySQL Master>ALTER TABLE `secPage2` ADD `sp_tmstmp` TIMESTAMP NOT NULL; MySQL Debian>desc secPage2; +--------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | +--------+-----------------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) Bad! (Or rather good! Here we have trapped the failure!) Check XP Client: MySQL XP>desc secPage2; +-----------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | | sp_tmstmp | timestamp(14) | YES | | NULL | | +-----------+-----------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) Ok. Again: MySQL Master>drop table secPage2; MySQL XP>desc secPage2; ERROR 1146: Table 'xxx.secPage2' doesn't exist MySQL Debian>desc secPage2; ERROR 1146: Table 'xxx.secPage2' doesn't exist MySQL Master>CREATE TABLE `secPage2` ( -> `idSc` mediumint(8) unsigned NOT NULL auto_increment, -> `idEdSc` smallint(5) unsigned NOT NULL default '0', -> `keySc` tinyint(3) unsigned NOT NULL default '0', -> `itemSc` mediumtext NOT NULL, -> `sp_tmstmp` timestamp(14) NOT NULL, -> PRIMARY KEY (`idSc`), -> UNIQUE KEY `ik` (`idEdSc`,`keySc`), -> FULLTEXT KEY `itemSc` (`itemSc`) -> ) TYPE=MyISAM; MySQL Debian>desc secPage2; +-----------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | | sp_tmstmp | timestamp(14) | YES | | NULL | | +-----------+-----------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) MySQL XP>desc secPage2; +-----------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | | sp_tmstmp | timestamp(14) | YES | | NULL | | +-----------+-----------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) MySQL Master>ALTER TABLE `secPage2` DROP `sp_tmstmp`; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 MySQL Debian>desc secPage2; +--------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | +--------+-----------------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) MySQL XP>desc secPage2; +--------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | +--------+-----------------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) Hm. Now it works. Very bad - no consistent behaviour. Again: MySQL Master>ALTER TABLE `secPage2` ADD `sp_tmstmp` TIMESTAMP NOT NULL; Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 MySQL Debian>desc secPage2; +-----------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | | sp_tmstmp | timestamp(14) | YES | | NULL | | +-----------+-----------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) MySQL XP>desc secPage2; +-----------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | | sp_tmstmp | timestamp(14) | YES | | NULL | | +-----------+-----------------------+------+-----+---------+----------------+ 5 rows in set (0.00 sec) MySQL Master>ALTER TABLE `secPage2` DROP `sp_tmstmp`; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 MySQL Debian>desc secPage2; +--------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | +--------+-----------------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec) MySQL XP>desc secPage2; +--------+-----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-----------------------+------+-----+---------+----------------+ | idSc | mediumint(8) unsigned | | PRI | NULL | auto_increment | | idEdSc | smallint(5) unsigned | | MUL | 0 | | | keySc | tinyint(3) unsigned | | | 0 | | | itemSc | mediumtext | | MUL | | | +--------+-----------------------+------+-----+---------+----------------+ 4 rows in set (0.02 sec) Hm. Puzzling. Now it works and then it didn't. I call this an intermittent failure. Those beasts are hard to track down. What could I possibly do?