介绍:在其他的文章中讲了mysql主从同步,有主从库的话,一般就会考虑到读写分离
一、安装jdk,这里就简单的安装openjdk
准备一台新的服务器,在新的服务器上安装jdk,mycat
检查服务器是否安装jdk
rpm -qa | grep java | xargs rpm -e --nodeps
查看jdk源
yum list java*
yum list java-1.8*
安装jdk1.8
yum install java-1.8.0-openjdk* -y
检查是否安装成功
java -version
配置环境变量
在 /etc/profile 文件中加入如下内容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
退出执行生效
source /etc/profile
二、安装mycat
下载mycat
wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
解压
tar -xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
三、配置读写分离
编辑文件schema.xml
配置逻辑库
<schema name="ghq_master_slave" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
配置真实库节点
<dataNode name="dn1" dataHost="ghq_master_slave" database="ghq" />
读写分离配置
<dataHost name="ghq_master_slave" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="主库地址" user="主库读写账号" password="主库读写密码">
<readHost host="hostS1" url="从库地址" user="从库只读账号" password="从库只读密码" />
</writeHost>
</dataHost>
编辑文件server.xml
配置mycat访问密码
<user name="mycat_master_slave">
<property name="password">test</property>
<property name="schemas">ghq_master_slave(对应schema.xml schema) </property>
</user>
四、启动mycat
cd /usr/local/mycat/bin
./mycat start
五、查询日志的sql增删改查情况
tail logs/wrapper.log -f
六、java中连接mycat方式
master.ds.url=jdbc:mysql://mycat地址:8066/ghq_master_slave?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&failOverReadOnly=false
master.ds.driverClassName=com.mysql.jdbc.Driver
master.ds.username=mycat_master_slave
master.ds.password=test