centos下搭建MySQL主从复制

来源:互联网 发布:vm数据区 编辑:程序博客网 时间:2024/06/05 07:32
主从复制应用场景:(1):数据分布  (2):负载均衡    (3):备份  (4):高可用和容错
    
主服务器:
    (1)进入:vi /etc/my.cnf
    (2)server_id:服务器的唯一标识,实操建议使用IP
       log-bin:开启主服务器的二进制日志,复制功能就是基于二进制日志
       
       log-bin = mysql-bin
       server_id = 74#ID随便起,前提主从服务器不同相同


       binlog-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
       binlog-ignore-db=不需要复制的数据库苦命,如果复制多个数据库,重复设置这个选项即可
       
       重启mysql服务器:service mysqld restart


    (3)主服务器增加完成复制功能的用户%:所有    从服务器IP地址:只能此IP可以访问
       grant replication slave on *.* to '服务器用户名'@'%' identified by '密码';
    (4)刷新权限
       flush privileges;


       
    (5)从服务器连接登录:mysql -h主服务器IP -u用户名 -p密码;


    (6)主服务器当前的状态:show master status\G;----获得File:localhost-bin.000001 (二进制文件地址)       Position:120(文件内部指针)








从服务器配置:
    (1)vi /etc/my.cnf
    (2)server_id = 76, 唯一的标识
    (3)重启mysql服务器:service mysqld restart


    replicate-do-db=需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
    replicate-ignore-db=不需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可
    
    (4)从服务器设置需要复制的主服务器信息
     change master to master_host="主服务器IP",master_user="用户名",master_password="密码",master_log_file='mx03-bin.000001',master_log_pos=27557852;


    (5)启动从服务器上的复制线程:start slave;


    (6)检测复制状态(从服务器状态):show slave status\G;


 会得到类似下面的列表:两个yes代表正常
 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes


基本原理:
    主服务器负责生成二进制日志
    从服务器负责读取主服务器的二进制日志,以及将其执行。


主服务器存在应用数据的话,在主从复制时,需要做一下处理:
    (1)主数据库锁表操作,不让数据在进行写入操作。------FLUSH TABLES WITH READ LOCK;
    (2)查看数据库状态 ------show master status;
    (3)将主服务器的数据文件拷贝赋值到从服务器
    (4)取消主数据库锁定 -----UNLOCK TABLES;
1 0
原创粉丝点击