У меня MySQL работает на Debian 5 (Lenny) между двумя базами данных MySQL. Данные передаются между двумя машинами, но одна из них регистрирует тот факт, что подчиненный поток ввода-вывода постоянно умирает, а затем сразу же повторно инициализируется.
Образец рассматриваемых записей журнала:
Jul 19 08:15:43 foo-db2 mysqld[22419]: 110719 8:15:43 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000002' at position 2107802, relay log '/var/log/mysql/mysql-relay-bin.018257' position: 235
Jul 19 08:15:43 foo-db2 mysqld[22419]: 110719 8:15:43 [Note] Slave I/O thread: connected to master 'replicator@10.10.95.28:3306', replication started in log 'mysql-bin.000002' at position 2107802
Jul 19 08:15:44 foo-db2 mysqld[22419]: 110719 8:15:44 [Note] Slave I/O thread killed while reading event
Jul 19 08:15:44 foo-db2 mysqld[22419]: 110719 8:15:44 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000002', position 2107802
Jul 19 08:15:44 foo-db2 mysqld[22419]: 110719 8:15:44 [Note] Error reading relay log event: slave SQL thread was killed
Jul 19 08:15:46 foo-db2 mysqld[22419]: 110719 8:15:46 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000002' at position 2107802, relay log '/var/log/mysql/mysql-relay-bin.018258' position: 235
Jul 19 08:15:46 foo-db2 mysqld[22419]: 110719 8:15:46 [Note] Slave I/O thread: connected to master 'replicator@10.10.95.28:3306', replication started in log 'mysql-bin.000002' at position 2107802
Jul 19 08:15:47 foo-db2 mysqld[22419]: 110719 8:15:47 [Note] Slave I/O thread killed while reading event
Jul 19 08:15:47 foo-db2 mysqld[22419]: 110719 8:15:47 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000002', position 2107802
Jul 19 08:15:47 foo-db2 mysqld[22419]: 110719 8:15:47 [Note] Error reading relay log event: slave SQL thread was killed
Однако даже с указанными выше ошибками машина «foo-db2» не отстает от «foo-db1»:
mysql@foo-db2> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.10.95.28
Master_User: replicator
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 2229610
Relay_Log_File: mysql-relay-bin.018379
Relay_Log_Pos: 235
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
[...]
mysql@foo-db1> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 2229610 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
При этом «SHOW SLAVE STATUS» выводит йо-йо между «Slave_IO_Running = Yes» и «Slave_SQL_Running = Yes» и является «Нет».
Наконец, номер файла mysql-relay-bin. ###### постоянно увеличивается каждые несколько секунд, но размер файла всегда 235 байт:
root@foo-db2:/var/log/mysql# mysqlbinlog mysql-relay-bin.0*
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#110719 8:25:40 server id 2 end_log_pos 98 Start: binlog v 4, server v 5.0.51a-24+lenny4-log created 110719 8:25:40
# at 98
#691231 19:00:00 server id 1 end_log_pos 0 Rotate to mysql-bin.000002 pos: 2229610
# at 141
#110719 6:25:02 server id 1 end_log_pos 0 Start: binlog v 4, server v 5.0.51a-24+lenny4-log created 110719 6:25:02
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;