mysql MHA集群高可用部署方案

关于ip安装文件等后期再慢慢调整完善,内容没有问题。

搭建 MySQL双主双从

在这里插入图片描述
mysql-master1配置

[root@hades]# vim /etc/my.cnf

datadir=/data/mysql
socket=/var/lib/mysql/mysqld.sock
user=mysql
symbolic-links=0

server-id=1
log-bin=mysql-bin

log-error=/var/log/mysqld.log
pid-file=/var/lib/mysql/master1.pid
binlog-ignore-db=mysql 
binlog-ignore-db=information_schema
binlog_format=STATEMENT

log-slave-updates
bind-address=0.0.0.0

mysql-slave1配置

[root@hades ]# vim /etc/my.cnf	

[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysqld.sock
user=mysql
symbolic-links=0
server-id=2  
relay-log=mysql-relay
pid-file=/var/lib/mysql/slave1.pid
bind-address=0.0.0.0

master2,slave2同上,改变对应id
双主机、双从机重启 mysql 服务

主1 mysql执行

[root@hades ]# mysql –u root –p
[root@hades ]# use mysql;
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'Siger_123';
show master status;

在这里插入图片描述

主2 mysql操作如上
在这里插入图片描述
分别记录File和position的值
执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

从1mysql上执行,复制主1mysql, 更改主机Ip 和mysql-bin

CHANGE MASTER TO MASTER_HOST=‘主机的IP地址’, MASTER_USER=‘slave’, MASTER_PASSWORD=‘密码’, MASTER_LOG_FILE=‘mysql-bin.具体数字’,MASTER_LOG_POS=具体值;

从2 mysql执行同上,复制从2 mysql,更改主机Ip 和mysql-bin。查看从机状态

show slave status\G;
在这里插入图片描述

两个都为yes即可
然后主主复制,操作命令同上,分别操作主1复制主2,主2复制主1.

—————————————————————————————————————————————

安装 Mycat

解压jdk安装包

[root@hades ]# tar -zxvf jdk-8u102-linux.gz

修改环境变量

[root@hades ]# vim /etc/profile
JAVA_HOME=/usr/local/java/jdk1.8.0_102
JRE_HOME=/usr/local/java/jdk1.8.0_102/jre

PATH=$PATH:/sbin/:$JAVA_HOME/bin:$CATALINA_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
export JAVA_HOME JRE_HOME PATH CLASSPATH

mycat解压后即可使用,解压缩mycat文件拷贝到 linux 下 /usr/local/

两个配置文件,配置读写分离
① schema.xml:定义逻辑库,表、分片节点等内容

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="库名" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
        </schema>
        <schema name="160_160" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn2">
        </schema>
        <dataNode name="dn1" dataHost="host1" database="库名" />
        <dataNode name="dn2" dataHost="host1" database="160_160" />
        <dataHost name="host1" maxCon="1000" minCon="10" balance="1"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!-- can have multi write hosts -->
                <writeHost host="SHAJDDFDBT01.corp.skf.net" url="ip:端口号" user="用户名" password="密码">
                        <!-- can have multi read hosts -->
                        <readHost host="SHAJDDFDBT02.corp.skf.net" url="10.10.10.10:3306" user="root" password="123" />
                </writeHost>
                <writeHost host="SHAJDDFDBT03.corp.skf.net" url="10.10.10.11:3306" user="root" password="123">
                        <!-- can have multi read hosts -->
                        <readHost host="SHAJDDFDBT04.corp.skf.net" url="10.10.10.11:3306" user="root" password="123" />
                </writeHost>
        </dataHost>
</mycat:schema>

② server.xml:定义用户以及系统相关变量,如端口等.配置文件过长,截取重要部分。

<user defaultAccount="true" name="mycat">
                <property name="password">Siger_123</property>
                <property name="schemas">siger,160_160</property>
 </user>

mysql远程访问验证

[root@hades ]# mysql -uroot -p123 -h 10.10.10.5(mysql 安装ip) -P 3306

远程访问权限

[root@hades ]# grant all privileges on *.* to root@'%' identified by '123'; 

启动mycat

[root@hades ]# 去 mycat/bin 目录下 ./mycat start (后台)

验证mycat

[root@hades ]# mysql -umycat -p123 -P 9066 -h 10.22.43.32(mycat安装ip)

—————————————————————————————————————————————

部署 基于 HA 机制的 Mycat 高可用

准备好HAProxy安装包,传到/opt目录下
解压到/usr/local/src
[root@hades ]# tar -zxvf haproxy-1.5.18.tar.gz -C /usr/local/src
进入解压后的目录,查看内核版本,进行编译

[root@hades ]# cd /usr/local/src/haproxy-1.5.18 
[root@hades ]# uname -r 
[root@hades ]# make TARGET=linux310 PREFIX=/usr/local/haproxy ARCH=x86_64 
 # ARGET=linux310,内核版本,使用uname -r查看内核,如:3.10.0-514.el7,此时该参数就为linux310;
 #ARCH=x86_64,系统位数; 
#PREFIX=/usr/local/haprpxy #/usr/local/haprpxy,为haprpxy安装路径。 

编译完成后,进行安装

[root@hades ]# make install PREFIX=/usr/local/haproxy 

安装完成后,创建目录、创建HAProxy配置文件

[root@hades ]# mkdir -p /usr/data/haproxy/ 
[root@hades ]# vim /usr/local/haproxy/haproxy.conf
配置文件:
global         
          log 127.0.0.1   local0         
          #log 127.0.0.1   local1 notice         
          #log loghost    local0 info         
          maxconn 4096         
          chroot /usr/local/haproxy         
          pidfile /usr/data/haproxy/haproxy.pid         
          uid 99         
          gid 99         
          daemon         
          #debug         
          #quiet 
 
 
defaults         
          log     global 
          mode    tcp         
          option  abortonclose         
          option redispatch         
          retries 3         
          maxconn 2000         
          timeout connect 5000         
          timeout client  50000         
          timeout server  50000 
 
 
listen proxy_status   
     bind :48066         
          mode tcp         
          balance roundrobin         
          server mycat_1 10.10.10.5:8066 check inter 10s         
          server mycat_2 10.10.10.6:8066 check inter 10s 
 
 
frontend admin_stats   
     bind :7777         
          mode http         
          stats enable         
          option httplog         
          maxconn 10         
          stats refresh 30s         
          stats uri /admin         
          stats auth admin:admin         
          stats hide-version         
          stats admin if TRUE

启动命令

[root@hades ]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf
ps -ef|grep haproxy

[root@hades ]# mysql -umycat -p123 -h 10.10.10.5 -P 48066 

—————————————————————————————————————————————

安装 Keepalived

准备好Keepalived安装包,传到/opt目录下
解压到/usr/local/src

[root@hades ]# tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src 

安装依赖插件

[root@hades ]# yum install -y gcc openssl-devel popt-devel 

进入解压后的目录,进行配置,进行编译

[root@hades ]# cd /usr/local/src/keepalived-1.4.2 
[root@hades ]#./configure --prefix=/usr/local/keepalived 

进行编译,完成后进行安装

[root@hades ]# make && make install 

运行前配置

[root@hades ]# cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/ 
mkdir /etc/keepalived 
[root@hades ]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ 
[root@hades ]# cp /usr/local/src/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

配置文件

! Configuration File for keepalived 
 
global_defs {
    notification_email {
	  siger_data@www.com   
	}
    notification_email_from keepalived@showjoy.com
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
    vrrp_skip_check_adv_addr
    vrrp_garp_interval 0
    vrrp_gna_interval 0 
} 
 
vrrp_instance VI_1 {
     #主机配MASTER,备机配BACKUP 
	 state MASTER 
	 #所在机器网卡     
	 interface eth0 
	 virtual_router_id 50 
	 #数值越大优先级越高     
	 priority 100     
	 advert_int 1     
	 authentication {         
	     auth_type PASS         
	     auth_pass 1111     
	 } 
	 virtual_ipaddress { 
	 #虚拟IP         
	       10.10.10.50
	 } 
}

启动

[root@hades ]# service keepalived start

验证虚拟地址

[root@hades ]# mysql -umycat -p123 -h 10.178.46.20 -P 48066
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值