狼狼 发表于 2018-10-3 09:52:10

主从mysql遇到的问题,

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

页: [1]
查看完整版本: 主从mysql遇到的问题,