设为首页 收藏本站
查看: 1155|回复: 0

[经验分享] mysql主从和mysql主主和半同步复制

[复制链接]

尚未签到

发表于 2018-10-9 06:04:12 | 显示全部楼层 |阅读模式
一、准备(主从都需要配置):  
    yum -y install mysql mysql-server#安装mysql
  
  yum -y install ntpdate#安装时间同步
  
  echo '*/1 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root#配置网络时间同步
  
  service mysqld start#启动服务
  
  chkconfig --add mysqld#添加为系统服务
  
  chkconfig  mysqld on#开启默认运行级别
  

  
二、主服务器配置:主配置文件默认为:/etc/my.cnf
  
    [mysqld]
  
  datadir=/var/lib/mysql
  
  socket=/var/lib/mysql/mysql.sock
  
  user=mysql
  
  symbolic-links=0
  
  log-bin=master-bin#开启二进制日志文件
  
  server-id=1#设置服务器id,保证全局唯一
  
  sync-binlog=1            #全局唯一的server-id
  
  innodb-flush-logs-at-trx-commit=1
  
  innodb-support-xa=1
  

  
  service mysqld restart#重启动服务
  

  
  mysql> show global variables like '%server%';      #数据库id
  
  mysql> show master logs;      #查看数据库二进制日志
  
  mysql> show master status;    #查看主服务器状态,记住二进制日志名,配置从服务器会用
  
  mysql> grant replication slave,replication client on *.* to  'copy'@'192.168.0.50' identified by '123.com';
  
      #授权192.168.0.50主机上的copy用户对所有库有复制权限
  
  mysql> select Host,User,Password from mysql.user;#查看用户
  
三、从服务器配置:
  
    [mysqld]
  
    datadir=/var/lib/mysql
  
    socket=/var/lib/mysql/mysql.sock
  
    user=mysql
  
    symbolic-links=0
  
    relay-log=slave-log#启用中继日志
  
    server-id=10#服务器id,全局唯一
  
    read-only=1#将服务器设置为只读模式(对拥有root权限的用户无效)
  
    service mysqld restart#重启动服务
  

  
    mysql> change master to master_host='192.168.0.10',master_user='copy',
  
           master_password='123.com',master_log_file='master-bin.000001',master_log_pos=590;
  master_host                #主服务器地址
  master_user                #拥有复制权限的用户
  master_password            #密码
  master_log_file            #从哪个二进制日志开始复制
  master_log_pos             #从二进制日志的什么位置开始复制
  
    mysql> start slave;#开启从服务器
  
    mysql> show slave status\G;#查看从服务器状态
  
四、验证主从:
  
    主服务器:
  
        mysql> create database db_test;#创建数据库
  
    从服务器:
  mysql> show databases;    #查看服务器是否同步
  

  

  
五、主主复制
  
    服务器A:
  
        [mysqld]#添加内容
  log-bin=master-bin#启用二进制日志
  relay-log=slave-log#启用中继日志
  server-id=1#服务器id,全局唯一
  auto-increment-offset=1#自增列起始
  auto-increment-increment=2#自增列一次步进(例:1,3,5,7,9...)
  
    mysql> grant replication slave,replication client on *.* to  'copy'@'192.168.0.50' identified by '123.com';
  
    mysql> change master to master_host='192.168.0.50',master_user='copy',
  
          master_password='123.com',master_log_file='master-bin.000001',master_log_pos=106;
  

  
    mysql> start slave;
  
    mysql> show slave status\G;
  
    服务器B:
  
        [mysqld]#添加内容
  
        log-bin=master-bin
  relay-log=slave-log
  server-id=10
  auto-increment-offset=2#自增列起始
  auto-increment-increment=2#自增列一次步进(例:2,4,6,8,10...)
  

  
        mysql> grant replication slave,replication client on *.* to  'copy'@'192.168.0.10' identified by '123.com';
  mysql> change master to master_host='192.168.0.10',master_user='copy',
  master_password='123.com',master_log_file='master-bin.000003',master_log_pos=106;
  mysql> start slave;
  mysql> show slave status\G;
  
六、半同步复制
  
    要想使用半同步复制,必须满足以下几个条件:
  
        1. MySQL 5.5及以上版本
  2. 变量have_dynamic_loading为YES
  3. 异步复制已经存在
  
    主:
  mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';#安装插件
  mysql> show plugins;#查看插件是否安装成功
  mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;#启用半同步
  mysql> show status like 'Rpl_semi_sync_master_status';#查看是否在运行
  
    从:
  mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';#安装插件
  mysql> show plugins;
  mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;#启用半同步
  mysql> STOP SLAVE#关闭复制线程
  mysql> START SLAVE #开启复制线程
  mysql> show status like 'Rpl_semi_sync_slave_status';#查看是否在运行
  mysql> show variables like '%Rpl%';#查看和半同步相关的服务器变量
  rpl_semi_sync_master_enabled#是否启用半同步
  rpl_semi_sync_master_timeout#等待超时时间
  rpl_semi_sync_master_wait_for_slave_count
  #需要等待多少个slave应答,才能返回给客户端
  mysql> show status like '%Rpl_semi%';#半同步状态
  Rpl_semi_sync_master_clients#当前半同步复制从的个数
  
七、和复制相关的文件
  
    从节点:
  
        master.info:用于保存slave连接至master时的相关信息(账号,密码,服务器地址,复制的二进制文件等)
  relay-log.info:保存当前slave节点上已经复制到的二进制文件位置,和relay-log的位置
  

  




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-617690-1-1.html 上篇帖子: MySQL Resize System Tablespace-12398798 下篇帖子: mysql 5.7 解决 set global slow_query_log=on;报错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表