先说下测试环境,共3个服务器,每个上面都有数据库,使用master-slave的方式同步数据。
问题:从数据库(slave)报错,日志如下:
100607 10:48:47 [ERROR] Failed to open the relay log './localhost-relay-bin.000010' (relay_log_pos 2787)
100607 10:48:47 [ERROR] Could not find target log during relay log initialization
100607 10:48:47 [ERROR] Failed to initialize the master info structure
查询slave状态,Slave_IO_Running和Slave_SQL_Running均显示NO。
原因:这个环境一直在使用也没有动,想想就是早上在做性能测试的时候为了nmon文件名修改了服务器名称,在网上查了一下,果然是修改服务器名称引起的!同步日志文件名默认是用主机名定义的,所以修改了主机名后导致同步报错。
如,原来的日志名为:TestInterfaceServerB-relay-bin,TestInterfaceServerB为我服务器的主机名。
解决方法:
1、修改mysql日志名(我的为subcenter-relay-bin),在数据库配置文件my.cnf中添加:
relay-log = subcenter-relay-bin
2、service mysql restart
3、stop slave;