mysql主主复制 死循环_MySQL主主复制故障自动切换解决方案

本文详细介绍了如何配置MySQL主主复制以避免死循环,并利用Keepalived进行故障自动切换。涵盖了MySQL的配置,包括开启binlog和设置不同的server-ID,以及Keepalived的安装与配置步骤,确保高可用性和稳定性。
摘要由CSDN通过智能技术生成

1. MySQL-VIP:192.168.0.50

2. MySQL-master1:192.168.0.42

3. MySQL-master2:192.168.0.49

5. OS版本:CentOS 5.5

6. MySQL版本:5.5.13

7. Keepalived版本:keepalived-1.2.7.tar.gz

一、MySQL master-master配置

1、修改MySQL配置文件

两台MySQL均如要开启binlog日志功能,开启方法:在MySQL配置文件[MySQLd]段中加上log-bin=MySQL-bin选项

两台MySQL的server-ID不能一样,默认情况下两台MySQL的serverID都是1,需将其中一台修改为2即可

这里省略掉创建主主过程,简单描述如下,在2太服务器上分别创建账号,然后实例化彼此的从服务器!即可!

二、keepalived安装及配置

安装keepalived

1. #tar zxvf keepalived-1.1.20.tar.gz

2. #cd keepalived-1.1.20

3. #./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-i686

4. #make && make install

[root@slave01 keepalived-1.2.7]# ./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-i686

checking for gcc... gcc

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out

checking for suffix of executables...

checking whether we are cross compiling... no

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking for a BSD-compatible install... /usr/bin/install -c

checking for strip... strip

checking how to run the C preprocessor... gcc -E

checking for grep that handles long lines and -e... /bin/grep

checking for egrep... /bin/grep -E

checking for ANSI C header files... yes

checking for sys/wait.h that is POSIX.1 compatible... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking fcntl.h usability... yes

checking fcntl.h presence... yes

checking for fcntl.h... yes

checking syslog.h usability... yes

checking syslog.h presence... yes

checking for syslog.h... yes

checking for unistd.h... (cached) yes

checking sys/ioctl.h usability... yes

checking sys/ioctl.h presence... yes

checking for sys/ioctl.h... yes

checking sys/time.h usability... yes

checking sys/time.h presence... yes

checking for sys/time.h... yes

checking openssl/ssl.h usability... yes

checking openssl/ssl.h presence... yes

checking for openssl/ssl.h... yes

checking openssl/md5.h usability... yes

checking openssl/md5.h presence... yes

checking for openssl/md5.h... yes

checking openssl/err.h usability... yes

checking openssl/err.h presence... yes

checking for openssl/err.h... yes

checking whether ETHERTYPE_IPV6 is declared... no

checking for MD5_Init in -lcrypto... yes

checking for SSL_CTX_new in -lssl... yes

checking for poptGetContext in -lpopt... yes

checking for nl_socket_modify_cb in -lnl... no

configure: WARNING: keepalived will be built without libnl support.

checking for kernel version... 2.6.18

checking for IPVS syncd support... yes

checking for kernel macvlan support... no

checking for an ANSI C-conforming const... yes

checking for pid_t... yes

checking whether time.h and sys/time.h may both be included... yes

checking whether gcc needs -traditional... no

checking for working memcmp... yes

checking return type of signal handlers... void

checking for gettimeofday... yes

checking for select... yes

checking for socket... yes

checking for strerror... yes

checking for strtol... yes

checking for uname... yes

configure: creating ./config.status

config.status: creating Makefile

config.status: creating genhash/Makefile

config.status: creating keepalived/core/Makefile

config.status: creating keepalived/include/config.h

config.status: creating keepalived.spec

config.status: creating keepalived/Makefile

config.status: creating lib/Makefile

config.status: creating keepalived/vrrp/Makefile

config.status: creating keepalived/check/Makefile

config.status: creating keepalived/libipvs-2.6/Makefile

Keepalived configuration

------------------------

Keepalived version      : 1.2.7

Compiler                : gcc

Compiler flags          : -g -O2 -DETHERTYPE_IPV6=0x86dd

Extra Lib                : -lpopt -lssl -lcrypto

Use IPVS Framework      : Yes

IPVS sync daemon support : Yes

IPVS use libnl          : No

Use VRRP Framework      : Yes

Use VRRP VMAC            : No

SNMP support            : No

Use Debug flags          : No

[root@slave01 keepalived-1.2.7]# make && make install

make -C lib || exit 1;

make[1]: Entering directory `/usr/local/keepalived-1.2.7/lib'

make[1]: Nothing to be done for `all'.

make[1]: Leaving directory `/usr/local/keepalived-1.2.7/lib'

make -C keepalived

make[1]: Entering directory `/usr/local/keepalived-1.2.7/keepalived'

make[2]: Entering directory `/usr/local/keepalived-1.2.7/keepalived/core'

gcc -g -O2 -DETHERTYPE_IPV6=0x86dd  -I/usr/src/kernels/2.6.18-164.el5-i686/include -I/usr/src/kernels/2.6.18-164.el5-i686/include -I../include -I../../lib -Wall -Wunused -Wstrict-prototypes -D_KRNL_2_6_ -D_WITH_LVS_ -D_WITH_VRRP_ -D_WITHOUT_SNMP_  -c main.c

make[2]: Leaving directory `/usr/local/keepalived-1.2.7/keepalived/core'

make[2]: Entering directory `/usr/local/keepalived-1.2.7/keepalived/check'

make[2]: Nothing to be done for `all'.

make[2]: Leaving directory `/usr/local/keepalived-1.2.7/keepalived/check'

make[2]: Entering directory `/usr/local/keepalived-1.2.7/keepalived/vrrp'

make[2]: Nothing to be done for `all'.

make[2]: Leaving directory `/usr/local/keepalived-1.2.7/keepalived/vrrp'

make[2]: Entering directory `/usr/local/keepalived-1.2.7/keepalived/libipvs-2.6'

gcc -g -O2 -DETHERTYPE_IPV6=0x86dd  -I/usr/src/kernels/2.6.18-164.el5-i686/include -I/usr/src/kernels/2.6.18-164.el5-i686/include -DLIBIPVS_DONTUSE_NL -Wall -Wunused -c -o libipvs.o libipvs.c

gcc -g -O2 -DETHERTYPE_IPV6=0x86dd  -I/usr/src/kernels/2.6.18-164.el5-i686/include -I/usr/src/kernels/2.6.18-164.el5-i686/include -DLIBIPVS_DONTUSE_NL -Wall -Wunused -c -o ip_vs_nl_policy.o ip_vs_nl_policy.c

ar rv libipvs.a libipvs.o ip_vs_nl_policy.o

r - libipvs.o

r - ip_vs_nl_policy.o

rm libipvs.o ip_vs_nl_policy.o

make[2]: Leaving directory `/usr/local/keepalived-1.2.7/keepalived/libipvs-2.6'

Building ../bin/keepalived

strip ../bin/keepalived

Make complete

make[1]: Leaving directory `/usr/local/keepalived-1.2.7/keepalived'

make -C genhash

make[1]: Entering directory `/usr/local/keepalived-1.2.7/genhash'

strip ../bin/genhash

Make complete

make[1]: Leaving directory `/usr/local/keepalived-1.2.7/genhash'

Make complete

make -C keepalived install

make[1]: Entering directory `/usr/local/keepalived-1.2.7/keepalived'

install -d /usr/local/keepalived/sbin

install -m 700 ../bin/keepalived /usr/local/keepalived/sbin/

install -d /usr/local/keepalived/etc/rc.d/init.d

install -m 755 etc/init.d/keepalived.init /usr/local/keepalived/etc/rc.d/init.d/keepalived

install -d /usr/local/keepalived/etc/sysconfig

install -m 755 etc/init.d/keepalived.sysconfig /usr/local/keepalived/etc/sysconfig/keepalived

install -d /usr/local/keepalived/etc/keepalived/samples

install -m 644 etc/keepalived/keepalived.conf /usr/local/keepalived/etc/keepalived/

install -m 644 ../doc/samples/* /usr/local/keepalived/etc/keepalived/samples/

install -d /usr/local/keepalived/share/man/man5

install -d /usr/local/keepalived/share/man/man8

install -m 644 ../doc/man/man5/keepalived.conf.5 /usr/local/keepalived/share/man/man5

install -m 644 ../doc/man/man8/keepalived.8 /usr/local/keepalived/share/man/man8

make[1]: Leaving directory `/usr/local/keepalived-1.2.7/keepalived'

make -C genhash install

make[1]: Entering directory `/usr/local/keepalived-1.2.7/genhash'

install -d /usr/local/keepalived/bin

install -m 755 ../bin/genhash /usr/local/keepalived/bin/

install -d /usr/local/keepalived/share/man/man1

install -m 644 ../doc/man/man1/genhash.1 /usr/local/keepalived/share/man/man1

 make[1]: Leaving directory `/usr/local/keepalived-1.2.7/genhash0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值