1.安装java运行环境
参考https://www.cnblogs.com/lamp01/p/8932740.html
2.下载mycat,链接
3.解压、安装
tar zxvf Mycat-server-1.6.7.3-release-20190809210613-linux.tar.gz
mv mycat /usr/local/
4.创建mycat用户 赋予权限
groupadd -r mycat && useradd -r -g mycat mycat
chown -R mycat:mycat /usr/local/mycat
5.设置环境变量
vim /etc/profile
JAVA_HOME=/usr/local/java/jdk1.8
JRE_HOME=/usr/local/java/jdk1.8/jre
MYCAT_HOME=/usr/local/mycat
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MYCAT_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
export MYCAT_HOME
刷新环境变量
source /etc/profile
6.设置内存使用的大小
修改conf目录的wrapper.conf配置文件找到MaxDirectMemorySize这行,更改合适的内存使用大小
vim conf/wrapper.conf
默认为2G,设置为测试用的512M
wrapper.java.additional.5=-XX:MaxDirectMemorySize=512M
7.启动mycat服务
mycat start
8.查看启动日志,显示服务启动成功
cat /usr/local/mycat/logs/wrapper.log
9.MyCat重要配置文件和作用原理
10.在server.xml中配置用户访问mycat的权限
<user name="jo">
<property name="password">123456</property>
<property name="schemas">db1,db2</property>
<property name="readOnly">false</property>
<privileges check="true">
<schema name="db1" dml="1110">
<table name="table1" dml="0010"></table>
<table name="table2" dml="1111"></table>
</schema>
</privileges>
</user>
定义了jo这个用户的访问密码和可以对db1、db2两个逻辑库进行读写操作,其中(特殊权限设置,只能一个一个逻辑库设置)privileges 具体定义了对某个逻辑库中的某个逻辑表的操作权限,dml的值分表代表insert、update、select、delete4种操作的权限值,1表示可操作性,0表示不可,没有定义的表使用schema中默认的的dml
11.设置加密密码访问
(1)通过java命令加密用户密码
进入jar包目录lib/
cd /usr/local/mycat/lib
使用Mycat-server-1.6.7.3-release.jar进行加密
java -cp Mycat-server-1.6.7.3-release.jar io.mycat.util.DecryptUtil 0:root:123456
复制输出的加密后的密码
(2)配置server.xml,设置user的usingDecrypt属性值=1,并将上面复制的加密信息覆盖掉原始密码
<user name="jo">
<property name="usingDecrypt">1</property>
<property name="password">GO0bnFVWrAuFgr1JMuMZkvfDNyTpoiGU7n/Wlsa151CirHQnANVk3NzE3FErx8v6pAcO0ctX3xFecmSr+976QA==
</property>
<property name="schemas">schema_db1,schema_db2</property>
<property name="readOnly">false</property>
<privileges check="true">
<schema name="schema_db1" dml="1110">
<table name="table1" dml="0010"></table>
<table name="table2" dml="1111"></table>
</schema>
</privileges>
</user>
属性schemas配置的是逻辑库