I've got a Master-Slave topology set up with the following two servers:

Master Information:
OS: GNU/Linux Centos 7.6.1810 (Core)
Kernel: 3.10.0-042stab140.4
MySQL version: 5.7.25
Server_id: 1

Slave Information:
OS: GNU/Linux Centos 6.10 (Final)
Kernel: 2.6.32-042stab134.8
MySQL version: 5.7.29
Server_id: 2

I have re-setup this whole thing a few times now, with the same results each time. It seems to work, but doesn't. Everything indicates that it is working fine, but the slave does not show new records. Here are the things I've checked:

  • SHOW SLAVE STATUS; output looks fine:
    • Master_Log_File and Read_Master_Log_Pos match what I see on the master. It is up to date on the binary log files
    • Both threads are running
    • Last_IO_Error and Last_SQL_Error are both null, no errors here
    • Slave_SQL_Running_State = Slave has read all relay log; waiting for more updates
  • Looked for errors in mysqld.log on both master and slave and can't find anything indicating what is wrong
  • Checked disk space on both hosts, plenty of free disk
  • SELinux is disabled on both hosts
  • Ensured unique server_id values between hosts

My replication filters should be fine, I've read just about everywhere that binlog_do_db and such are not a good idea to use, so we are using only Replicate_Wild_Do_Table: ('database.%') on the slave. That is the only thing filtering being done in the whole topology.

When I dumped the database which I used to import into the slave (using the mysqldump program), I used the --skip-triggers flag but the triggers only affect tables which I don't care about, and those do not have keys which are relied upon to update other tables.

I'm using ROW based binary logging.

Here is the CHANGE MASTER TO statement I used to begin replication after importing the database with the dump file: CHANGE MASTER TO MASTER_HOST='host-ip', MASTER_PORT=host-port, MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1353, MASTER_SSL=1 FOR CHANNEL 'channel-1';

I have no error messages in /var/log/mysqld.log on either the master or the slave that would indicate the problem. All I know is that everything looks healthy and fine, but nothing is being replicated! Seems kind of absurd that I can't even see that anything is wrong, not even one of mysql's amazingly vague error messages.

Does anyone have any ideas? What have I not checked? I tried searching for related posts but everyone else seems to have a problem they can work on but I don't seem to have a problem.. just a major symptom.

  • Have you tried removing the Replicate_Wild_Do_Table: ('database.%') to see if you get anything? Even if it is just an error.
    – IGGt
    Commented May 12, 2020 at 10:01
  • do master/slave have different server_ids?
    – danblack
    Commented May 12, 2020 at 11:09
  • @lGGt At that point it would begin replicating all databases though right? Or would it just ignore databases that don't already exist on the slave? Commented May 12, 2020 at 15:50
  • @danblack Yes, forgot to note that. They have unique ID's. Commented May 12, 2020 at 15:51
  • It would try to replicate everything, and trigger an error if the database / table etc doesn't exist. It would at least prove whether or not you were receiving any data, thus ruling in / out the filter as being the problem (assumes you haven't got any slave-skip-errors=nnn set up)
    – IGGt
    Commented May 13, 2020 at 9:04


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.