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主从设置参数跟以前不一样,需要注意,