Mycat双主四从高可用详细配置操作

文章目录

    • 前言
      • 一. 主从配置
          • 主机1
          • 主机2
          • 从机1
          • 其余从机配置方法类似
      • 二. Mycat配置

前言

实验环境:
系统:centos7
Mysql版本: 5.7
Mycat版本: 1.6
Mycat主机ip地址: 10.8.161.14
主机1地址: 10.8.161.9
主机2地址: 10.8.161.18
从机1地址: 10.8.161.139
从机2地址: 10.8.161.140
从机3地址: 10.8.161.141
从机4地址: 10.8.161.142

实验目标:
①主机1与主机2互为主从
②从机1、2为主机1的从机。从机3、4为主机2的从机。
③Mycat配置读写分离。 主机1、2为写主机 ,其余从机为读主机。当主机1宕机,主机2顶上。反之一样。

一. 主从配置

主机1
  1. vim /etc/my.cnf 在配置文件下添加以下内容
[mysqld] #这个下面添加
server-id=1                             #server的唯一标识
auto_increment_increment=2              #总共有2台主
auto_increment_offset=1                 #这是第1台
log-slave-updates=1                     # 共联同步 
log-bin = mysql-bin                           #打开二进制功能,MASTER主服务器必须打开此项
max_binlog_size=1024M                          #binlog单文件最大值                  
  1. 进入主机1数据库,创建从机连接主机的账户。
grant replication slave on *.*  TO  'cong'@'%'  identified by 'aA12345678.';
  1. 重启数据库
systemctl restart mysqld
  1. 记下日志名字和起始位置
进入数据库
mysql> show master status\G

在这里插入图片描述

主机2
  1. vim /etc/my.cnf 在配置文件下添加以下内容
[mysqld] #这个下面添加
server-id=1                             #server的唯一标识
auto_increment_increment=2              #总共有2台主
auto_increment_offset=2                 #这是第2台
log-slave-updates=1                     # 共联同步 
log-bin = mysql-bin                           #打开二进制功能,MASTER主服务器必须打开此项
max_binlog_size=1024M                          #binlog单文件最大值                  
  1. 进入主机2数据库,创建从机连接主机的账户。
grant replication slave on *.*  TO  'cong'@'%'  identified by 'aA12345678.';
  1. 重启数据库
systemctl restart mysqld
  1. 记下日志名字和起始位置
进入数据库
mysql> show master status\G

在这里插入图片描述

从机1
  1. vim /etc/my.cnf 在配置文件下添加以下内容
[mysqld] #这个下面添加
server-id=103   # 和其他设备的id不同即可
autocommit=1    # 自动提交事务,相对安全
lower_case_table_names=1    #表不区分大小写
  1. 查看主1的日志起始

  2. 进入数据库,连接主1库

mysql> \e
CHANGE MASTER TO
MASTER_HOST='10.8.161.9',     # 指定库1的地址
MASTER_USER='cong',           # 指定库1创建的用户名  
MASTER_PASSWORD='aA12345678.',   # 指定库1创建的密码
MASTER_LOG_FILE='mysql-bin.000002',    # 指定主1库的日志文件名
MASTER_LOG_POS=321;                    # 指定主1库的日志起始位置
    -> ;
其余从机配置方法类似

配置完毕在从机启动并查看

mysql >  start slave;    #启动
mysql > show slave status\G     #查看

Mycat双主四从高可用详细配置操作_第1张图片

二. Mycat配置

以下配置jdk包和mycat包已上传的我的资源,可自行下载。
下载地址

https://download.csdn.net/download/qq_26129413/14009842
  1. 部署jdk环境
[root@mycat ~]# tar xzf jdk-8u221-linux-x64.tar.gz -C /usr/local/
[root@mycat ~]# cd /usr/local/
[root@mycat local]# mv jdk1.8.0_221/ java    #改名为java
设置环境变量
[root@mycat local]# vim /etc/profile  #添加如下内容,
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@mycat local]# source /etc/profile
  1. 解压mycat包
tar xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz -C /usr/local/
  1. 配置mycat

    server.xml:用于配置系统参数、用户信息、访问权限及SQL防火墙和SQL拦截功能等
    schema.xml:用于配置逻辑库、逻辑表相关信息
    rule.xml:如果使用了水平切分,就需要使用该文件配置切分规则
    log4j2.xml:Mycat日志相关的配置,例如日志输出格式、日志级别等

    应用连接Mycat服务时,Mycat首先会通过server.xml中的配置信息进行用户认证。用户通过验证后,所看到的逻辑库、逻辑表都是schema.xml中所配置的。当使用了水平切分时,Mycat会通过rule.xml里配置的规则来定位具体的物理数据库位置,从而完成写入/读取数据。

①server.xml 配置



<mycat:server xmlns:mycat="http://io.mycat/">
        <system>
        <property name="useSqlStat">0property>  
        <property name="useGlobleTableCheck">0property>  

                <property name="sequnceHandlerType">2property>
<property name="processorBufferPoolType">0property>
        <property name="handleDistributedTransactions">0property>
        <property name="useOffHeapForMerge">1property>
        <property name="memoryPageSize">1mproperty>
        <property name="spillsFileBufferSize">1kproperty>

                <property name="useStreamOutput">0property>

        <property name="systemReserveMemorySize">384mproperty>

        <property name="useZKSwitch">trueproperty>


        system>

        <user name="root" >
                <property name="password">abc123.456property>
                <property name="schemas">testdbproperty>
user>
    
mycat:server>

Mycat双主四从高可用详细配置操作_第2张图片 ②schema.xml配置



<mycat:schema xmlns:mycat="http://io.mycat/">




    <schema name="testdb"   sqlMaxLimit="100" dataNode="dn1">
    schema>



    <dataNode name="dn1" dataHost="localhost1" database="testdb" />




    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
                                  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
    
    <heartbeat>select user()heartbeat>
   
     
    <writeHost host="mysql-master" url="10.8.161.9:3306" user="root" password="aA12345678.">
        
    <readHost host="mysql-slave" url="10.8.161.139:3306" user="root" password="aA12345678." />
    <readHost host="mysql-slave3" url="10.8.161.141:3306" user="root" password="aA12345678." />
           writeHost>

    <writeHost host="mysql-master2" url="10.8.161.18:3306" user="root" password="aA12345678.">
        
    <readHost host="mysql-slave2" url="10.8.161.140:3306" user="root" password="aA12345678." />
    <readHost host="mysql-slave3" url="10.8.161.142:3306" user="root" password="aA12345678." />

           writeHost>

dataHost>
mycat:schema>
  1. 启动mycat服务
cd  /usr/local/mycat/bin   # 进入mycat的启动bin目录
./mycat                    # 启动mycat
netstat -lntp              # 查看端口,可以看到有8086端口说明配置成功

Mycat双主四从高可用详细配置操作_第3张图片
5. 远程连接mycat虚拟库

mysql -uroot -h10.8.161.14 -p'abc123.456' -P 8066  #这里的账号密码是我们在server.xml里配置的

登陆后可以查看到我们创建的testdb这个虚拟库,当我们操作该库时,对应的是几个实体数据库的testdb库。
Mycat双主四从高可用详细配置操作_第4张图片

======================================================================================================================================================================================================================================================================================================
辛苦浏览观看,如果对你有帮助,请顺手点个赞吧 (σ゚∀゚)σ…:*☆

你可能感兴趣的:(Mysql,mycat,多主多从,mysql,linux,运维)