Apart from changing directories from MySQL, did you check that files have correct permission and that file /var/lib/mysql/data/mysql-bin.000045 exists?
Above message might be related to file not existing, wrong permission and impossibility to open it, or trying to find for a file on wrong path.
Also, mysql-bin.index file contains the path to each binary log file. You should double check that each file name on .index file does exactly match real file name.
You should not manually change files while MySQL is running (and if possible, do not edit .index file manually) since it can cause inconsistencies
As I’ve read on internet forums, relay_log “cannot be changed” when replication is alive, so I’ll stop master and replica, move master to replica, do the change … and go from there.
Another thing you can try doing for avoiding switchover, is to execute “RESET SLAVE” (on replica server) to forget replication settings and purge relay logs, then execute again “CHANGE MASTER TO” statement to setup replication from scratch and start fetching relay logs again. You will need to write down “Master_Log_File” and “Exec_Master_Log_Pos” to know last binary log and position last executed on replica. Then use those same file/pos on RELAY_LOG_FILE and RELAY_LOG_POS to restore replication from where it left off.