主从配置过程

  • 主从配置过程
主节点 (192.168.23.10)
(1)编译配置文件,启动二进制日志 ,为当前节点设置一个全局唯一的id号
编辑/etc/my.cnf,添加如下信息
log_bin=/data/binlog/master-bin (一定要让mysql用户对/data/binlog有读写权限)
server_id = 1
innodb_file_per_table=on
skip_name_resolve=on
(2)创建一个有复制权限的用户账号
grant replication slave,replication client on *.* to repluser@'192.168.23.%' identified by '123456';
flush privileges;
 
 
从节点 (192.168.23.11)
(1)编辑配置文件/etc/my.cnf启动中继日志, 设置一个全局唯一的id号
relay_log = relay-log
relay_log_index=relay-log.index
server_id = 2
innodb_file_per_table=on
skip_name_resolve=on
 
(2)使用有复制权限的用户账号连接至主服务器,并启动复制线程
change master to master_host = '192.168.23.10',master_user = 'repluser',master_password = '123456',master_log_file = 'master-bin.000005',master_log_pos = 245;
show slave statusG : 查看slave节点的信息
start slave; :指明启动I/O线程和SQL线程
  • 注意点
问:如果主节点已经运行了一段时间,且有大量的数据,如何启动slave节点
 
答:如果主服务器已近启动了一段时间了,那么这个时间点之前的数据使用完全备份到从服务器,并且记录备份的position,因此再从主节点新的二进制文件开始做主从同步
  • 复制架构中应该注意的问题
1: 从服务器为只读模式,不能写
第一种方案:在从服务器上设置:read_only = ON,此限制对root用户无效
第二种方案:阻止所有的用户,给表加锁
flush tables with read lock;
# master_info记录了主节点的信息,这就是为什么重新启动MySQL的时候会自动连接复制功能
sync_master_info = 1
2:如何保证主从复制的事务安全
1)在master节点启用参数
sync_binlog = ON :提交之后内存中的事务立马写到磁盘上
如果用到的为InnoDB存储引擎
innodb_flush_logs_at_trx_commit = ON :将内存中的事务日志写在磁盘上
innodb_support_xa = ON : 是否支持分布式事务
 
2)在slave节点
skip_slave_start = ON : 指定手动启动复制功能,不要自动启动复制功能
sync_relay_log = 1;
sync_relay_log_info = 1;
原文地址:https://www.cnblogs.com/liu1026/p/7467733.html