Bug #70640 --slave-skip-errors won't skip missing database/table
Submitted: 16 Oct 2013 23:24 Modified: 2 Aug 2016 16:18
Reporter: Jan Z Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:5.5.33, 5.5.34 OS:Any
Assigned to: CPU Architecture:Any

[16 Oct 2013 23:24] Jan Z
Description:
Even when --slave-skip-errors=all slave 

31017  1:00:19 [ERROR] Slave SQL: Error executing row event: 'Table 'kubmac_Vmyb524.mybb_sessions' doesn't exist', Error_code: 1146
131017  1:00:19 [Warning] Slave: Table 'kubmac_Vmyb524.mybb_sessions' doesn't exist Error_code: 1146
131017  1:00:19 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000001' position 6912

I indented to skip this error because I wanted to re-create databases (mysqldump & import) on master after setting working replication. This operation would be usefull to force replication of databases while not using file-copy (for example when downgrading mysql or upgrading where db format changed)

How to repeat:
---
[24 Oct 2013 9:40] MySQL Verification Team
Hello Jan Z,

Thank you for the report.
Verified as described.

Thanks,
Umesh
[2 Aug 2016 16:18] David Moss
Posted by developer:
 
Thanks for your feedback. This has been fixed in upcoming releases and the following was added to the 5.6.32 and 5.7.14 change log:

With slave_skip_errors enabled there were still special cases when slave errors were not being correctly ignored. For example:

    When opening and locking a table failed.

    When field conversions failed on a server running row-based replication. 

In these cases the error was considered critical and it was not respecting the state of slave_skip_errors. The fix ensures that with slave_skip_errors enabled, all errors reported during applying a transaction are correctly handled. This means that in such a set up, upon receiving an error with the log_warnings option set to greater than 1, if the error can be ignored then the warning is printed into the error log and the server continues as it does in the case of other ignored errors.