mycat的安装与配置
前提:mycat安装前需先实现主从复制,主从复制不会的,请看 文章 。另外,配置前需关掉selinux。
一、此次测试环境总共有四台机:
mycat: 10.0.0.20 mysql_master: 10.0.0.21 mysql_slave: 10.0.0.22 测试机: 10.0.0.23
二、安装mycat前,需先安装jdk
1、 安装jdk
1)安装jdk
#下载jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html #创建jdk保存目录 $ sudo mkdir -p /usr/lib/jvm #解压jdk $ sudo tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/lib/jvm
2)设置jdk环境变量
添加环境变量 $ sudo vim /etc/profile 【 /etc/profile 】 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATh=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH #使变量环境立刻生效 $ source /etc/profile
2、安装mycat
#下载mycat http://dl.mycat.io/1.6-RELEASE/ #解压mycat $ sudo tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local #设置mycat环境变量 $ sudo vim /etc/profile export MYCAT_HOME=/usr/local/mycat export PATH=${MYCAT_HOME}/bin:$PATH #使环境变量立刻生效 source /etc/profile #启动mycat $ mycat start
三、配置mycat,主要修改schema.xml和server.xml两个文件
1、 修改schema.xml文件:
<!—此处的name为mysql对应的数据库,建议设置跟数据库一样的名称--> <schema name="test001" checkSQLschema="false" sqlMaxLimit="100"> <!—此处的name为test001数据库的表格,命名与数据库的一致 --> <table name="tb_test" dataNode="test001Node" /> </schema> <!-- 此处的name需与上面table中的dataNode一致,dataHost可自定义,下来用得着,database为mysql数据库 --> <dataNode name="test001Node" dataHost="dtHost" database="test001" /> <!-- 此处的name需与dataNode中的dataHost一致,balance=1为读写分离,其它值默认 --> <dataHost name="dtHost" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <!-- 此处默认 --> <heartbeat>select user()</heartbeat> <!-- 此处的url为主服务器的IP,端口默认,另外填写连接mysql的正确用户名和密码 --> <writeHost host="hostM1" url="10.0.0.21:3306" user="root"password="redhat"> <!-- 此处的url为从服务器的IP,端口默认,另外填写连接mysql的正确用户名和密码 --> <writeHost host="hostS1" url="10.0.0.22:3306" user="root"password="redhat" />
2、 配置server.xml
<!-- 此处的root和123456为连接mycat的用户名与密码,test001为数据库,需与schema.xml中配置的数据库一致 --> <user name="root"> <property name="password">123456</property> <property name="schemas">test001</property> </user> <!-- 此处的信息基本同上,但user用户只有读的权限--> <user name="user"> <property name="password">user</property> <property name="schemas">test001</property> <property name="readOnly">true</property> </user>
四、测试mycat
1、 在mysql主服务器添加数据库
#进入数据库 $ mysql -uroot -p #数据库操作 mysql> create database test001; mysql> use test001; mysql> create table tb_test(id int(3),name varchar(11)); mysql> insert into tb_test values(1,’Lining’);
2、 进入mycat服务器,追踪mycat 日志。
$ sudo tail -f /usr/local/mycat/logs/mycat.log
3、 在测试机操作。
# 在mycat服务器上登录远程数据库 $ mysql -h10.0.0.20 -uroot -p123456 -P8066 #数据库操作 mysql> user test001; mysql> insert into tb_test values(2,‘Zhaoxiong’);
详情如下图
五、添加mycat的开机启动
#赋予rc.loca可执行权限 $ sudo chmod +x /etc/rc.d/rc.local #添加内容 $ sudo vim /etc/rc.d/rc.local /usr/local/mycat/bin/mycat start &
以上是读写分离的全部过程,只是皮毛而已,如何要深究,可以查看mycat官网的教程。