My mysql master server has crashed due to storage issue. The issue has been fixed and the master is up and running. However, my slave has stopped to be replicated due to the error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'

Here is my slave status:

    mysql> show slave status\G;
*************************** 1. row ***************************
                  Master_Host: 192.x.x.x
                  Master_User: user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000321
          Read_Master_Log_Pos: 3962375
               Relay_Log_File: mysql-relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000321
             Slave_IO_Running: No
            Slave_SQL_Running: Yes
                   Last_Errno: 0
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 3962375
              Relay_Log_Space: 106
              Until_Condition: None
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
               Last_SQL_Errno: 0

And here is my master status:

mysql> show master status\G;
*************************** 1. row ***************************
            File: mysql-bin.000323
        Position: 103145634
1 row in set (0.00 sec)

I can see that the specific binary log (mysql-bin.000321) doesn't exist on the master. The the log file itself exist on the server, but ain't shown by SHOW BINARY LOGS;.

| Log_name         | File_size  |
| mysql-bin.000314 | 1073742675 |
| mysql-bin.000315 | 1073742958 |
| mysql-bin.000316 | 1073742098 |
| mysql-bin.000317 |  631008456 |
| mysql-bin.000318 |   18007666 |
| mysql-bin.000319 |        125 |
| mysql-bin.000320 |  327413876 |
| mysql-bin.000322 |        125 |
| mysql-bin.000323 |  109150417 |

Please advise.

1 Answer 1


Sounds like this sequence happened:

  1. The slave went down, but you did not notice it.
  2. A few days(?) went by.
  3. The binlogs (on the Master) were automatically purged (either by a script you use, or by expire_logs_days)
  4. Now you noticed the Slave was stopped, but it is too late.

If this is not the only slave, stop another slave and clone it to rebuild this one.

If it is the only slave, you are stuck with rebuilding the slave from the master. Not fun.

But... You said the Master died and was repaired?? Well, look at the timeframes, and other things that I suggest above. How many days (#2); how fast is the purging (#3), etc?

  • Here is the correct sequence: 1. Due to a storage issue, the master went down. 2. The issue has been detected immediately, as it monitored. The system has been recovered after about one hour.3 Once the master was up and running, the slave couldn't synced from the master, as the specific binlog was missing. It located on the server, but doesn't displayed when i use the command "SHOW BINARY LOGS". I have notice that many people has complained about a similar issue (missing binlog after a server crushing).
    – Omri
    Mar 21, 2017 at 9:59
  • This is not related to purging, as an older binlogs are still exist (see the output of "SHOW BINARY LOGS").
    – Omri
    Mar 21, 2017 at 10:07

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.