mycat是MySQL中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之。后来mycat对cobar的代码进行了彻底的重构,使用NIO重构了网络模块,并且优化了Buffer内核,增强了聚合,Join等基本特性,同时兼容绝大多数数据库成为通用的数据库中间件。
#一台虚拟机
hostname:myhost
ip:ip_address
[root@myhost ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@myhost ~]# firewall-cmd --state #查看防火墙的状态
running
[root@myhost ~]# firewall-cmd --list-ports #查看防火墙已经开放的端口
[root@myhost ~]# firewall-cmd --list-services #查看防火墙开放的服务
dhcpv6-client ssh
#mycat服务默认的数据端口是8066,允许8066/tcp端口访问
[root@myhost ~]# firewall-cmd --zone=public --permanent --add-port=8066/tcp
success
[root@myhost ~]# firewall-cmd --reload #重新加载防火墙配置
success
[root@myhost ~]# setenforce 0 && getenforce
Permissive
[root@myhost ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
连接管理端口的方法和连接8066端口的方法基本一样。
因mycat是用java语言开发的,所以需要先安装java,官方建议jdk1.7及以上版本!我这里已经提前安装好了。
[root@myhost ~]# echo $JAVA_HOME
/usr/local/jdk1.8.0_131
[root@myhost ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
[root@myhost logs]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
ip_address myhost
安装包存放目录:/home/tools
mycat安装目录:/usr/local/mycat
日志保存位置:/usr/local/mycat/logs
mycat的官网地址:http://mycat.io/
mycat的下载地址:http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz
[root@myhost ~]# cd /home/tools
[root@myhost tools]# wget http://dl.mycat.io/1.6.7.1/Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz
[root@myhost tools]# ll
-rw-r--r--. 1 root root 17567422 6月 27 18:04 Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz
[root@myhost tools]# tar xf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz
[root@myhost tools]# ll
drwxr-xr-x. 7 root root 79 12月 19 10:22 mycat
-rw-r--r--. 1 root root 17567422 6月 27 18:04 Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz
#移动已解压好的mycat软件到安装目录并重命名为mycat(省去做软连接)
[root@myhost tools]# mv /home/tools/mycat /usr/local/
[root@myhost tools]# ll /usr/local/mycat/
总用量 16
drwxr-xr-x. 2 root root 4096 12月 19 10:22 bin
drwxrwxrwx. 2 root root 6 3月 21 2015 catlet
drwxrwxrwx. 2 root root 4096 12月 19 10:22 conf
drwxr-xr-x. 2 root root 4096 12月 19 10:22 lib
drwxrwxrwx. 2 root root 6 3月 21 2015 logs
-rwxrwxrwx. 1 root root 214 6月 4 2015 version.txt
[root@myhost tools]# useradd mycat -s /sbin/nologin -M
[root@myhost tools]# id mycat
uid=1004(mycat) gid=1004(mycat) 组=1004(mycat)
[root@myhost tools]# chown -R mycat:mycat /usr/local/mycat/
[root@myhost tools]# ll /usr/local/mycat/
总用量 16
drwxr-xr-x. 2 mycat mycat 4096 12月 19 10:22 bin
drwxrwxrwx. 2 mycat mycat 6 3月 21 2015 catlet
drwxrwxrwx. 2 mycat mycat 4096 12月 19 10:22 conf
drwxr-xr-x. 2 mycat mycat 4096 12月 19 10:22 lib
drwxrwxrwx. 2 mycat mycat 6 3月 21 2015 logs
-rwxrwxrwx. 1 mycat mycat 214 6月 4 2015 version.txt
[root@myhost tools]# vi /etc/profile
export mycat_HOME=/usr/local/mycat
export PATH=${mycat_HOME}/bin:$PATH
[root@myhost bin]# source /etc/profile
[root@myhost bin]# echo $mycat_HOME
/usr/local/mycat
[root@myhost bin]# echo $PATH
/usr/local/mycat/bin:/usr/local/jdk1.8.0_131/bin:/usr/local/jdk1.8.0_131/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@myhost bin]# /usr/local/mycat/bin/mycat
Usage: /usr/local/mycat/bin/mycat { console | start | stop | restart | status | dump }
[root@myhost bin]# /usr/local/mycat/bin/mycat start
Starting mycat-server...
[root@myhost bin]# ps -ef |grep mycat
root 70513 1 0 10:34 ? 00:00:00 /usr/local/mycat/bin/./wrapper-linux-x86-64 /usr/local/mycat/conf/wrapper.conf wrapper.syslog.ident=mycat wrapper.pidfile=/usr/local/mycat/logs/mycat.pid wrapper.daemonize=TRUE wrapper.lockfile=/var/lock/subsys/mycat
root 70679 70197 0 10:36 pts/0 00:00:00 grep --color=auto mycat
# mycat监听两个端口,分别为8066和9066;
# mycat服务默认的数据端口是8066,而9066端口则是mycat管理端口,用于管理mycat的整个集群状态。
# 监听的端口可以在 /usr/local/mycat/conf/server.xml配置文件中修改。
[root@dscq2 ~]# netstat -lntup
tcp 0 0 127.0.0.1:32000 0.0.0.0:* LISTEN 40204/java
tcp6 0 0 :::9066 :::* LISTEN 40204/java
tcp6 0 0 :::40877 :::* LISTEN 40204/java
tcp6 0 0 :::45276 :::* LISTEN 40204/java
tcp6 0 0 :::1984 :::* LISTEN 40204/java
tcp6 0 0 :::8066 :::* LISTEN 40204/java