wocaosinima 发表于 2018-12-29 10:36:20

keepalived+双主

  # setenforce 0
  # systemctl stop firewalld.service
  # vim /etc/my.cnf
  server_id=1
  log-bin=mysql-bin
  gtid-mode=on
  enforce-gtid-consistency=1
  log_slave_updates = 1
  binlog-format=mixed
  auto-increment-increment=2          #自动增长步长,三台mysql这设置为3
  auto-increment-offset=1            #自增长初始值
  # service mysqld start
  # setenforce 0
  # systemctl stop firewalld.service
  # vim /etc/my.cnf
  server_id=2
  log-bin=mysql-bin
  gtid-mode=on
  enforce-gtid-consistency=1
  log_slave_updates = 1
  binlog-format=mixed
  auto-increment-increment=2
  auto-increment-offset=2
  # service mysqld start
  #设置双主同步
  # mysql -uroot -p123456
  mysql> grant replication slave on *.* to rep@'192.168.1.%' identified by '123456';
  # mysql -uroot -p123456
  mysql> change master to master_host='192.168.1.128',master_user='rep',master_password='123456',master_port=3306,master_auto_position=1;
  mysql> start slave;
  mysql> show slave status\G;
  mysql>grant replication slave on *.* to rep@'192.168.1.%' identified by '123456';
  # mysql -uroot -p123456
  mysql> change master to master_host='192.168.1.128',master_user='rep',master_password='123456',master_port=3306,master_auto_position=1;
  mysql> start slave;
  mysql> show slave status\G;
  #测试是否同步
  mysql> create database test;
  mysql> create table test.t1(id int primary key auto_increment,name varchar(10));
  mysql> insert into test.t1(name) values('tom1');
  #登录master2查看
  mysql> select * from test.t1;
  +----+------+
  | id | name |
  +----+------+
  |2 | tom1 |
  |4 | tom1 |
  +----+------+
  #在master1与master2上安装keepalived
  #keepalived依赖包
  # yum -y install kernel-devel openssl-devel popt-devel
  # tar zxf keepalived-2.0.6.tar.gz
  # cd keepalived-2.0.6/
  # ./configure --prefix=/ --with-kernel-dir= /usr/src/kernels/3.10.0-862.9.1.el7.x86_64/ &&make &&make install
  # vim /etc/keepalived/keepalived.conf
  # vim /etc/keepalived/keepalived.conf
  ! Configuration File for keepalived
  global_defs {
  router_id mysql_1
  }
  state BACKUP
  interface eno16777728
  virtual_router_id 51
  auth_type PASS
  auth_pass 1111
  ! Configuration File for keepalived
  global_defs {
  router_id mysql_1
  }
  vrrp_instance VI_1 {
  state BACKUP
  interface eno16777728
  virtual_router_id 51
  priority 100
  advert_int 1
  nopreempt
  authentication {
  auth_type PASS
  auth_pass 1111
  }
  virtual_ipaddress {
  192.168.1.100
  }
  }
  virtual_server 192.168.1.100 3306 {
  delay_loop 6
  lb_algo rr
  lb_kind DR
  persistence_timeout 50
  protocol TCP
  real_server 192.168.1.128 3306 {
  weight 1
  notify_down /etc/keepalived/bin/mysql.sh
  TCP_CHECK {
  connect_timeout 3
  retry 3
  delay_before_retry 3
  connect_port 3306
  }
  }
  }
  # mkdir /etc/keepalived/bin
  # vim /etc/keepalived/bin/mysql.sh
  #!/bin/bash
  pkill keepalived
  /sbin/ifdown eno16777728 && /sbin/ifup eno16777728
  # chmod +x /etc/keepalived/bin/mysql.sh
  # systemctl start keepalived.service
  # ss -lanp |grep keepa
  p_rawUNCONN   0      0      rarp:*                      *                  users:(("keepalived",pid=17863,fd=7))
  u_dgrUNCONN   0      0         * 25852               * 8724                users:(("keepalived",pid=17863,fd=3),("keepalived",pid=17862,fd=3),("keepalived",pid=17861,fd=3))
  raw    UNCONN   0      0         *:112                   *:*                   users:(("keepalived",pid=17863,fd=9))
  raw    UNCONN   0      0         *:112                   *:*                   users:(("keepalived",pid=17863,fd=8))
  raw    UNCONN   0      0         *:255                   *:*                   users:(("keepalived",pid=17862,fd=5))
  #master2给以上一样,只需修改配置文件几个地方和mysql.sh
  # vim /etc/keepalived/keepalived.conf
  ! Configuration File for keepalived
  global_defs {
  router_id mysql_2
  }
  state BACKUP
  interface eno16777736
  virtual_router_id 51
  priority 50
  auth_type PASS
  auth_pass 1111
  }
  virtual_ipaddress {
  192.168.1.100
  }
  }
  virtual_server 192.168.1.100 3306 {
  delay_loop 6
  lb_algo rr
  lb_kind DR
  persistence_timeout 50
  protocol TCP
  real_server 192.168.1.129 3306 {
  weight 1
  notify_down /etc/keepalived/bin/mysql.sh
  TCP_CHECK {
  connect_timeout 3
  retry 3
  delay_before_retry 3
  connect_port 3306
  }
  }
  }
  # vim /etc/keepalived/bin/mysql.sh
  #!/bin/bash
  pkill keepalived
  /sbin/ifdown eno16777736 && /sbin/ifup eno16777736
  # chmod +x /etc/keepalived/bin/mysql.sh
  # ip addr
  2: eno16777728:mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 00:0c:29:d8:de:a3 brd ff:ff:ff:ff:ff:ff
  inet 192.168.1.128/24 brd 192.168.1.255 scope global noprefixroute dynamic eno16777728
  valid_lft 5353953sec preferred_lft 5353953sec
  inet 192.168.1.100/32 scope global eno16777728
  valid_lft forever preferred_lft forever
  # service mysqld stop
  Shutting down MySQL............ SUCCESS!
  # ip addr
  2: eno16777728:mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 00:0c:29:d8:de:a3 brd ff:ff:ff:ff:ff:ff
  inet 192.168.1.128/24 brd 192.168.1.255 scope global noprefixroute dynamic eno16777728
  valid_lft 5353814sec preferred_lft 5353814sec
  inet6 fe80::20c:29ff:fed8:dea3/64 scope link noprefixroute
  valid_lft forever preferred_lft forever
  # ip addr
  2: eno16777736:mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 00:0c:29:da:f7:a1 brd ff:ff:ff:ff:ff:ff
  inet 192.168.1.129/24 brd 192.168.1.255 scope global noprefixroute dynamic eno16777736
  valid_lft 5353785sec preferred_lft 5353785sec
  inet 192.168.1.100/32 scope global eno16777736
  valid_lft forever preferred_lft forever
  inet6 fe80::20c:29ff:feda:f7a1/64 scope link noprefixroute
  valid_lft forever preferred_lft forever



页: [1]
查看完整版本: keepalived+双主