mycat 1.5 读写分离
环境说明:
三台都安装MySQL 5.7.34版本数据库,其中
192.168.3.63 CentOS7-63 安装mycat服务,管理CentOS7-64和CentOS7-65数据库读写分离
192.168.3.64 CentOS7-64 配置为Master 作为主从架构的主数据库
192.168.3.65 CentOS7-65 配置为Slave 作为主从架构的从数据库
mycat 下载地址:https://github.com/MyCATApache/Mycat-Server
安装包下载: https://github.com/MyCATApache/Mycat-Server/releases
JDK1.8 下载地址:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html
1、安装JDK1.8和mycat
mkdir -p /usr/java
tar zxf jdk-8u291-linux-x64.tar.gz -C /usr/java/
tar -zxvf Mycat-server-1.5.1-RELEASE-20161130213509-linux.tar.gz -C /usr/local/
ll /usr/java/
cd /usr/java/jdk1.8.0_291
cd /usr/local/mycat
vim /etc/porfile
#添加JDK环境变量
JAVA_HOME=/usr/java/jdk1.8.0_291
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
#添加MyCat环境变量
MYCAT_HOME=/usr/local/mycat
PATH=$MYCAT_HOME/bin:$PATH
保存退出
#刷新系统环境变量
source /etc/porfile
#验证jdk环境
java -version
2、Linux系统中组建的MyCAT集群,需要在MyCAT Server所在的服务器上配置对其他ip和主机名的映射
vim /etc/hosts
192.168.3.63 CentOS7-63
192.168.3.64 CentOS7-64
192.168.3.65 CentOS7-65
3、修改配置
3.1、修改server.xml文件
cd /usr/local/mycat/conf
编辑vim server.xml,跳到文末:
填写登录mycat数据库用户名root,密码761479629@Lt,需要操作逻辑数据库为:HA
<user name="root" defaultAccount="true"> <property name="password">761479629@Lt</property> <property name="schemas">HA</property> <!--<property name="defaultSchema">TESTDB</property>--> </user> <user name="user"> <property name="password">user</property> <property name="schemas">HA</property> <property name="readOnly">true</property> <!--<property name="defaultSchema">TESTDB</property>--> </user>
3.2、配置引用的配置文件schema.xml
配置说明:配置数据库为HA,主从数据库需要创建一个账号为mycat用户名。密码为761479629Lt的用户操作数据库;(需要修改的以红色标出)
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="HA" checkSQLschema="false" sqlMaxLimit="100" randomDataNode="dn1">
</schema>
<dataNode name="dn1" dataHost="localhost1" database="HA" />
<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="CentOS7-64" url="192.168.3.64:3306" user="mycat" password="761479629Lt"></writeHost>
<writeHost host="CentOS7-65" url="192.168.3.65:3306" user="mycat" password="761479629Lt"></writeHost>
</dataHost>
</mycat:schema>
重要参数讲解: balance="0" 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。 balance="1" 全部的readHost与stand by writeHost参与select语句的负载均衡,简单来说就是不分你我 balance="2",所有读操作都随机分发在writeHost、readhost上。 balance="3",所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力 switchType指的是切换的模式,目前的取值也有4种: switchType='-1' 表示不自动切换 switchType='1' 默认值,表示自动切换 switchType='2' 基于MySQL主从同步的状态决定是否切换,心跳语句为 show slave status switchType='3'基于MySQL galary cluster的切换机制(适合集群)(1.4.1),心跳语句为 show status like 'wsrep%'。
4、主从数据库上都要创建帐号
mysql>grant all on *.* to mycat@'192.168.3.63' IDENTIFIED BY '761479629Lt';
mysql>flush privileges;
提示弱密码处理方法:
set global validate_password_policy=0;
set global validate_password_length=4;
5、启动mycat
mycat start
查看是否启动:
mycat status
[root@CentOS7-63 conf]# mycat status
Mycat-server is running (128300).
6、设置开机自启
方法一:
软连接ln -s /安装目录/bin/mycat /etc/init.d/mycat
ln -s /usr/local/mycat/bin/mycat /etc/init.d/mycat
编辑日志配置文件:vim /usr/local/mycat/conf/wrapper.conf
wrapper.java.command=/usr/java/jdk1.8.0_291/bin/java
添加启动项:
chkconfig --add mycat
设置开机自启:
chkconfig mycat on
方法二:vim /etc/rc.d/rc.local
#java路径根据自己实际情况填写
export JAVA_HOME=/usr/java/jdk1.8.0_291 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
/usr/local/mycat/bin/mycat start
修改日志配置文件:conf/wrapper.conf;将wrapper.java.command设置为java的路径
wrapper.java.command=/usr/java/jdk1.8.0_291/bin/java
7、其他设置
查看端口是否监听:
netstat -anput
tcp6 0 0 :::8066 :::* LISTEN 128302/java
如果报错查看日志
tail -f /usr/local/mycat/wrapper.log
修改日志报错级别:使报错日志更详尽
在conf里有一个log4j.xml,在文件最末尾
修改<level value="info" />
改为<level value="debug" />
保存重启mycat
登录本机mycat管理(记得加端口号8066)
mysql -uroot -p761479629@Lt -h 192.168.3.63 -P8066
操作跟MySQL操作一样。