准备好mycat服务和mycat运行的jdk环境包
准备四台虚拟机实验
作者使用C-1、C-2作为两台主机,互为主从。C-3、C-4作为从机
为了避免I/O线程读取二进制文件超时,一定要关闭防火墙
systemctl stop firewalld
setenforce 0
AB复制原理:
理解了底层原理我们开始操作虚拟机
在主机C-1中更改mysql服务配置
vim 打开配置文件
vim /etc/my.cnf
#添加如下内容
server-id=1
log-bin=c1_bin
log-slave-updates
auto-increment-increment=2
auto-increment-offset=1
重启服务:
systemctl restart mysqld
在主机C-2中更改mysql服务配置
vim 打开配置文件
vim /etc/my.cnf
#添加如下内容
server-id=2
log-bin=c1_bin
log-slave-updates
auto-increment-increment=2
auto-increment-offset=2
重启服务:
systemctl restart mysqld
在主机C-3中更改mysql服务配置
vim 打开配置文件
vim /etc/my.cnf
#添加如下内容
server-id=3
relay-log=mysql-relay
重启服务:
systemctl restart mysqld
在主机C-4中更改mysql服务配置
vim 打开配置文件
vim /etc/my.cnf
#添加如下内容
server-id=4
relay-log=mysql-relay
重启服务:
systemctl restart mysqld
综上已经配置好了所以机器的配置文件
作者先配置了slave(从机)
思路:C-4做C-2的从机,C-3做C-1的从机
登录C-1、C-2创建一下授权账号:创建一样的就行了,个人认为没必要创两个不同的账号,主要是麻烦,哈哈
C1C2都要如此操作一下,看好两台主机的二进制文件名(file)和位置号(position),一会儿从机要用到。
grant replication slave on *.* to 'youth'@'%' identified by '1';
show master status\G
开始从机配置,登录C-4的mysql
help change master to ; #获取配置项
\e;
CHANGE MASTER TO MASTER_HOST='192.168.121.10', MASTER_USER='youth', MASTER_PASSWORD='1', MASTER_PORT=3306, MASTER_LOG_FILE='c1_bin.000003', MASTER_LOG_POS=762, MASTER_CONNECT_RETRY=10;
MASTER_HOST='对应主机的IP地址'
start slave;
show slave status\G
这两个选项都是yes代表成功,同样的方法使C-3做C-1的从机,这里作者就不再赘述
C-1与C-2互为主从的操作同理
下面开始配置mycat服务
tar xf jdk-8u211-linux-x64.tar.gz -C /usr/local
tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
cd /usr/local/
mv jdk1.8.0_211/ java
1、在/etc/profile 配置新加
[root@mycat local]# vim /etc/profile #添加如下内容,
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@mycat local]# source /etc/profile
java -version 检查jdk是否成功安装
2、安装mycat
可以选择加入环境变量,就像jdk一样,也可以这样创建软连接
ln -s /usr/local/mycat/bin/mycat /usr/bin/mycat
安装好先不要开启mycat,会失败,因为还没有配置
先开始配置mycat
[root@localhost ~]# cd /usr/local/mycat/conf/
[root@localhost conf]# vim server.xml
[root@localhost conf]# vim schema.xml
先到主机C1和C2的mysql创建授权用户和创建
C1:
create database tesetdb;
grant all on tesetdb.* to 'du'@'%' identified by '1';
C2:
create database tesetdb;
grant all on tesetdb.* to 'xie'@'%' identified by '1';
启动mycat:
在wrapper.conf中添加
[root@mycat mycat]# cd conf/
[root@mycat conf]# vim wrapper.conf #在设置JVM哪里添加如下内容
wrapper.startup.timeout=300 //超时时间300秒
wrapper.ping.timeout=120
启动:
[root@mycat conf]# /usr/local/mycat/bin/mycat start #需要稍微等待一会
Starting Mycat-server...
[root@mycat ~]# jps #查看mycat是否启动
13377 WrapperSimpleApp
13431 Jps
[root@mycat ~]# netstat -lntp | grep java
在部署mycat服务的C1主机登录mycat账号
mysql -uroot -p1 -h 192.168.121.10 -P 8066
就可以测试了
如果有读者出现报错可以私信作者