Mycat的搭建以及配置与启动

Posted 原克技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mycat的搭建以及配置与启动相关的知识,希望对你有一定的参考价值。

1、首先开启服务器相关端口

firewall-cmd --permanent --add-port=9066/tcp

firewall-cmd --permanent --add-port=8066/tcp

重启:

firewall-cmd --reload

2、安装JDK

2.1、安装方式一

2.1.1、使用yum安装JDK

yum install -y java-1.8.0-openjdk.x86_64

2.2.2、查看安装版本

java -version

2.2、安装方式二

2.2.1、下载环境,JDK安装包

下载地址


这里我下载的是Linux x64 Compressed Archive,可以根据自己的环境自行下载

2.2.2、在/usr/local/下创建java目录

roomkdir java
chmod 777 java

2.2.3、使用ftp链接服务器并把下载的安装包上传至java目录

2.2.4、进入到java目录,解压上传文件

tar -zxvf +需要解压的包名
tar -zxvf jdk-16.0.2_linux-x64_bin.tar.gz

2.2.5、编辑配置文件,配置环境变量,vim /etc/profile进入编辑状态,在打开的文件最后面加上如下代码:

JAVA_HOME=/usr/local/java/jdk-16.0.2
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

2.2.6、重新加载配置文件,输入:

source /etc/profile

2.2.7、最后一步,查看安装情况

java -version


输入:

javac

3、安装Mycat

3.1、Mycat安装方式一

3.1.1、下载地址
http://dl.mycat.org.cn/1.6-RELEASE/
http://www.mycat.org.cn/
http://dl.mycat.org.cn/1.6.6/

3.1.2、使用ftp上传至服务器

3.1.3、配置与启动

3.1.3.1、配置文件

配置文件为schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
	<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
		<table name="table1" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
	</schema>
	#表为三个表,分别在三个服务器中,a1、a2、a4分为为三个服务器中的三个数据库
	<dataNode name="dn1" dataHost="localhost1" database="a1" />
	<dataNode name="dn2" dataHost="localhost1" database="a2" />
	<dataNode name="dn3" dataHost="localhost1" database="a4" />
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<writeHost host="hostM1" url="192.168.72.140:3306" user="root"
				   password="123456789aA!">
			<!-- can have multi read hosts -->
			<readHost host="hostS2" url="192.168.72.140:3306" user="root" password="" />
			<readHost host="hostS2" url="192.168.72.141:3306" user="root" password="" />
		</writeHost>
	</dataHost>
</mycat:schema>

3.1.3.2、启动Mycat

 ./mycat/bin/mycat
[root@mycat2 mycat]# ./mycat/bin/mycat
Usage: ./mycat/bin/mycat { console | start | stop | restart | status | dump }
#控制台|启动|停止|重启|状态|转储
#执行命令的方式
./mycat/bin/mycat +操作
#控制台:
./mycat/bin/mycat console 
#启动:
./mycat/bin/mycat start
#停止:
./mycat/bin/mycat stop 
#重启:
./mycat/bin/mycat restart 
#状态:
./mycat/bin/mycat status 
#转储:
./mycat/bin/mycat dump 

3.2、服务器下载wget

wget http://dl.mycat.org.cn/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

3.3、解压

tar -zxvf  Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

3.4、启动

./mycat/bin/mycat

3.5、文件配置与启动方式可以参考手动上传方式

4、Mycat配置实例

这里我准备了四个服务器,分分别为:

192.168.72.149 #Mycat服务器(Mycat默认的数据库为8099,或者9066。需要打开这两个端口)
192.168.72.143 #MySQL数据库服务器(服务器中有a1数据库,a1中有个table1数据表)
192.168.72.150 #MySQL数据库服务器(服务器中有a1数据库,a1中有个table1数据表)
192.168.72.151 #MySQL数据库服务器(服务器中有a1数据库,a1中有个table1数据表)

192.168.72.143数据库中的数据为:

192.168.72.150数据库中的数据为:

192.168.72.151数据库中的数据为:


连接Mycat服务器:

Mycat服务器查询的数据结果为:


查询只能使用语句进行查询,如下:

schema.xml文件的配置:

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

	<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
		<table name="table1" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
	</schema>
	<dataNode name="dn1" dataHost="localhost1" database="a1" />
	<dataNode name="dn2" dataHost="localhost2" database="a1" />
	<dataNode name="dn3" dataHost="localhost3" database="a1" />
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<writeHost host="hostM1" url="192.168.72.143:3306" user="root"
				   password="aA123456.">
			<!-- can have multi read hosts -->
			<!-- <readHost host="hostS2" url="192.168.72.140:3306" user="root" password="" />
			<readHost host="hostS2" url="192.168.72.141:3306" user="root" password="" /> -->
		</writeHost>
	</dataHost>
	
	<dataHost name="localhost2" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<writeHost host="hostM1" url="192.168.72.150:3306" user="root"
				   password="aA123456.">
		</writeHost>
	</dataHost>
	
	<dataHost name="localhost3" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<writeHost host="hostM1" url="192.168.72.151:3306" user="root"
				   password="aA123456.">
		
		</writeHost>
	</dataHost>
</mycat:schema>

也可配置为:

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

	<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
		<table name="table1" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
	</schema>
	<dataNode name="dn1" dataHost="localhost1" database="a1" />
	<dataNode name="dn2" dataHost="localhost1" database="a1" />
	<dataNode name="dn3" dataHost="localhost1" database="a1" />
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<writeHost host="hostM1" url="192.168.72.143:3306" user="root"
				   password="aA123456.">
			<!-- can have multi read hosts -->
			<!-- <readHost host="hostS2" url="192.168.72.140:3306" user="root" password="" />
			<readHost host="hostS2" url="192.168.72.141:3306" user="root" password="" /> -->
		</writeHost>
		<writeHost host="hostM1" url="192.168.72.150:3306" user="root"
				   password="aA123456.">
		</writeHost>
		<writeHost host="hostM1" url="192.168.72.151:3306" user="root"
				   password="aA123456.">
		
		</writeHost>
	</dataHost>
</mycat:schema>

登录Mycat:

mysql -h127.0.0.1 -uroot -p123456 -P8066

-h:为本机地址,也可以是你的IP地址
-u:Mycat中配置的用户名
-p:Mycat中配置的密码
-P:端口
注意:如果需要在命令端登录,需要安装MySQL

资料:

Mycat下载地址

JDK下载地址

以上是关于Mycat的搭建以及配置与启动的主要内容,如果未能解决你的问题,请参考以下文章

数据库中间件 MyCAT 源码分析 —— 调试环境搭建

mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

Mycatweb的介绍与搭建

使用Mycat实现数据切分(中)

springboot + mybatis + mycat整合

Mycat读写分离以及拆库拆表综合实验2:部署配置mycat读写分离与拆库拆表