On the slave, you should run the command SHOW SLAVE STATUS
it will provide information on the reason for the failure;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master.db.sever
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000154
Read_Master_Log_Pos: 209998
Relay_Log_File: mysqld-relay-bin.000480
Relay_Log_Pos: 105395
Relay_Master_Log_File: mysql-bin.000154
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0 <-----here this value
Last_Error: <-----here this value
Skip_Counter: 0
Exec_Master_Log_Pos: 209998
Relay_Log_Space: 105395
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)
You are interested in the Last Errno
, to see that it is indeed 0, the the last error message content.
Presumably you could also check that your replication user has "INSERT" and "UPDATE" permissions on the table that it is supposed to replicate to. This information is in the mysql database and can be checked with the SHOW GRANTS statement;
mysql> show grants for root@'someserver.com';
+---------------------------------------------------------------------------------------+
| Grants for root@someserver |
+---------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'oomeserver ' WITH GRANT OPTION |
+---------------------------------------------------------------------------------------+
1 row in set (0.00 sec)