数据库同步报错Failed to open the relay log

先说下测试环境,共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;

4、reset slave;(会把master.info和relay-log.info文件给删除,但里面的同步信息还在)

5、更新日志点,master 最新状态

change master to master_host='masterIP',master_user='username',master_password='password',master_port=3306,master_log_file='mysql-bin.000100',master_log_pos=536154253;
6、start slave;

结果图:

数据库同步报错Failed to open the relay log_第1张图片

你可能感兴趣的:(mysql)