1,ERROR 1201 (HY000): Could not initialize master info structure
mysql互为主从,但是在SLAVE执行CHANGE MASTER时,出现这个错误: ERROR 1201 (HY000): Could not initialize master!
解决办法(如下):
mysql> slave stop;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> reset slave;
Query OK, 0 rows affected,(0.00 sec)
mysql> change master to master_host='192.168.100.10',master_user='replication',master_password='123456',master_log_file='updatelog.000004',master_log_pos=106;
Query OK, 0 rows affected (0.05 sec)
mysql> slave start;
Query OK, 0 rows affected (0.00 sec)
这样就完成mysql主从设置了,你可以执行
mysql > show slave status \G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
2.Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
意思就是从上的server_id和主的一样的,经查看发现从上的/etc/my.cnf中的server_id=1这行我没有注释掉(在下面复制部分我设置了server_id),于是马上把这行注释掉了,然后重启mysql,
使用下面这条命令可以更改ID号,但是重启mysql服务后,问题依旧,(临时起作用)
mysql> set global server_id=2; #此处的数值和my.cnf里设置的一样就行
3.Error 'Duplicate entry '43625' for key 'PRIMARY'' on query.
mysql复制的时候遇到错误就停在哪里, 需要手工去出错, 例如这个错误:
1062 | Error 'Duplicate entry 'adfadfadf' for key 1' on query. Default database: 'xx_db'. Query: 'INSERT INTO ...
原因是,你的slave数据库的db表里已经有‘%-test’ 这一个数据项了。 所以无法插入。 确认下slave和master机mysql.db表的 %-test信息是否相同。 相同:set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; 跳过这句 不同:手动更新数据,然后再set GLOBAL SQL_SLAVE_SKIP_COUNTER=1 跳过;
假如只是一两条错误, 机器也很少, 哪倒是无所谓, 用下面的方法就可以了.
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql>slave start;
当你有很多繁忙的数据库, 维护总是让你很忙的时候. 假如在数据要求不是那么高的时候, 也有一个方法让你没有烦恼, 在slave的my.cnf里面写入.
slave-skip-errors = 1062
启动后它将会忽略所有类型为1062的错误.
4.mysql5.5主从设置参数跟以前不一样,需要注意,