基于四台服务器实现mysql读写分离,一台做代理,另外三台配置MySQL一主多从。实现读的负载均衡

本文详细介绍了如何在Linux上安装和配置Mycat,包括下载、环境变量设置、授权、schema.xml和server.xml的配置,以及验证读写分离和连接测试的过程。重点展示了如何配置主库授权和从库同步,以及设置逻辑库和数据节点以实现MySQL的高可用性和负载均衡。
摘要由CSDN通过智能技术生成

Mycat:10.75.65.103

Master:10.75.65.104

Slave:10.75.65.105,10.75.65.106

安装mycat:

下载mycat并解压缩到/usr/local目录:

[root@localhost ~]#wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz

[root@localhost ~]#tar zxvf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz -C /usr/local/

安装java-jdk:
[root@localhost ~]#yum install java-1.8.0-openjdk -y

配置mycat环境变量:
[root@localhost ~]#echo "export PATH=/usr/local/mycat/bin:$PATH" >/etc/profile.d/mycat.sh

[root@localhost ~]# chmod +x /etc/profile.d/mycat.sh

[root@localhost ~]#/etc/profile.d/mycat.sh

 

在主库执行授权信息,从库会自动同步:
MariaDB [(none)]>grant all on *.* to "mycat-proxy"@"10.75.65.103" identified by "123456";

 

配置mycat

配置server.xml :

[root@localhost ~]# vim /usr/local/mycat/conf/server.xml

#默认管理用户,可读可写:

<user name="mycat" defaultAccount="true">

                <property name="password">123456</property>

                <property name="schemas">newdb</property>

</user>

# 只读用户

<user name="user">

                <property name="password">user</property>

                <property name="schemas">newdb</property>

                <property name="readOnly">true</property>

        </user>

配置schema.xml

[root@localhost ~]# vim /usr/local/mycat/conf/schema.xml

# 设置逻辑库以及数据库节点

<schema name="newdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">

</schema>

 

# 配置数据库节点对应的后端真实的数据库:

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

 

# 配置读写库以及均衡:

<dataHost name="localhost1" 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="hostM1" url="10.75.65.104:3306" user="mycat-proxy" password="123456">

  <!-- can have multi read hosts -->

       <readHost host="hostS1" url="10.75.65.105:3306" user="mycat-proxy" password="123456" />

       <readHost host="hostS2" url="10.75.65.106:3306" user="mycat-proxy" password="123456" />

</writeHost>

      <!-- <writeHost host="hostM2" url="localhost:3306" user="root" password="123456"/> -->

</dataHost>

 

启动mycat:

[root@localhost ~]#/usr/local/mycat/bin/mycat start

 

连接测试:

#在105和106两台从机数据库mycat,表mycat104中分别加了ID是105和106的信息。在主库查不到数据,通过代理可以查到,即可验证读写分离成功。

代理:

[root@localhost ~]#mysql -umycat -p123456 -P8066 -h127.0.0.1

mysql> show databases;

 

 

+----------+

| DATABASE |

+----------+

| newdb    |

+----------+

1 row in set (0.00 sec)

mysql> use newdb;

 

mysql> select * from mycat104;

+------+-----------+

| id   | name      |

+------+-----------+

|    3 | xiaoqiang |

|  106 | 106       |

+------+-----------+

2 rows in set (0.00 sec)

 

mysql> select * from mycat104;

+------+-----------+

| id   | name      |

+------+-----------+

|    3 | xiaoqiang |

|  106 | 106       |

+------+-----------+

2 rows in set (0.00 sec)

 

mysql> select * from mycat104;

+------+-----------+

| id   | name      |

+------+-----------+

|    3 | xiaoqiang |

|  105 | 105       |

+------+-----------+

2 rows in set (0.00 sec)

 

主机数据库:

MariaDB [(none)]> use mycat;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

MariaDB [mycat]> show tables;

+-----------------+

| Tables_in_mycat |

+-----------------+

| mycat104        |

+-----------------+

1 row in set (0.00 sec)

 

MariaDB [mycat]> select * from mycat104;

+------+-----------+

| id   | name      |

+------+-----------+

|    3 | xiaoqiang |

+------+-----------+

1 row in set (0.00 sec)

 

在mycat中插入一条信息:

mysql> insert mycat104 value(103,"mycat");

Query OK, 1 row affected (0.04 sec)

在主机中查询:

MariaDB [mycat]> select * from mycat104;

+------+-----------+

| id   | name      |

+------+-----------+

|    3 | xiaoqiang |

|  103 | mycat     |

+------+-----------+

2 rows in set (0.00 sec)

 

以上说明读写分离已配置成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值