在我门准备好了两台数据库服务器的基础上 1、须在主、从服务器配置文件 /etc/my.cnf指定 server_id (任意,建议指定不易混淆,有规律,有逻辑的) binlog日志(一般不指定时日志名称默认为主机名-bin.00000x) binlog-format="mixed" (指定日志格式,一般为混合格式“mixed”,根据需求而定) 注意: 如果以上没有指定,都会报错错; 2、在主库上面授权:允许用户对主库有复制权限 (replication:复制) grant replication slave on . to 用户名@"服务器地址" identified by "密码"; 必须要授权(从库无法指定主库并复制) 3指定组服务器:(缺一不可) 登录数据库 change master to master_host="主服务器地址" master_user=“主库上的授权用户“ master_password="授权账户密码“ master_log_file= " 主服务器binlog日志名称“ master_log_pos=”binlog日志偏移量” 最后启动主从复制start slave 查看重服务器状态 Slave_IO_Running: (负责与主机的io通信) Slave_SQL_Running: (负责自己的slave 数据库进程) 如果不出问题的话,主从同步就部署成功了,

但是这世界并不太平,如果IO线程启动失败 以下是我遇到的问题: 1、主服务器的防火墙没关,导致从服务器同步失败 解决方案:关闭防火墙; 2、主从服务器数据库中数据不一致,(部署主从服务时) 先将不同的部分备份到对方的数据库中保证数据的一致 (不建议删库删库删表) 3、binlog日志偏移量不对,从服务器找不到同步节点 打开主服务器binlog日志文件,找到数据偏移量,重新指定就可以了。 如果是SQL线程启动失败: 我碰到的情况如下: 1、Last_SQL_Error: Error 'Operation DROP USER failed for 'yy'@'192.168.4.10'' on query. Default database: 'alldb'. Query: 'drop user yy@192.168.4.10' 就是没有同步之前的的主库授权用户,在部署完之后发现从库上没有之前主库上的授权用户,然后我撤销了,从库的SQL线程就断了,所以要谨慎操作。 解决办法:一般都不是删除、撤销、当然就是在从库上做同样的授权。 2、Slave failed to initialize relay log info structure from the repository 当出现这种报错时:一般原因是默认中继日志relay_log被服务器上另一个mysql slave占用了; 解决方案:1、初始化中继日志, 即删除relay-log.info中继日志文件 2、在配置文件/etc/my.cnf 中指定中继日志名称 3、当配置高可用集群时,SQL线程启动失败报错如下 Master command COM_REGISTER_SLAVE failed: Access denied for user 'monitor'@'%' (using password: YES) (Errno: 1045) 当出现这种报错时: 1主服务器的级联复制功能未开启 解决方案:在配置文件中log_slave_updates # 允许级联复制,重起服务,还有是主库必须添加授权用户。 2还有就是删除授权用户,(不建议)。 综上所述:部署主从同步时对数据库服务器具有高度的统一性。

第一次写博客:希望多多交流,共同成长。