实验环境:
系统:centos7
Mysql版本: 5.7
Mycat版本: 1.6
Mycat主机ip地址: 10.8.161.14
主机1地址: 10.8.161.9
主机2地址: 10.8.161.18
从机1地址: 10.8.161.139
从机2地址: 10.8.161.140
从机3地址: 10.8.161.141
从机4地址: 10.8.161.142
实验目标:
①主机1与主机2互为主从
②从机1、2为主机1的从机。从机3、4为主机2的从机。
③Mycat配置读写分离。 主机1、2为写主机 ,其余从机为读主机。当主机1宕机,主机2顶上。反之一样。
vim /etc/my.cnf
在配置文件下添加以下内容[mysqld] #这个下面添加
server-id=1 #server的唯一标识
auto_increment_increment=2 #总共有2台主
auto_increment_offset=1 #这是第1台
log-slave-updates=1 # 共联同步
log-bin = mysql-bin #打开二进制功能,MASTER主服务器必须打开此项
max_binlog_size=1024M #binlog单文件最大值
grant replication slave on *.* TO 'cong'@'%' identified by 'aA12345678.';
systemctl restart mysqld
进入数据库
mysql> show master status\G
vim /etc/my.cnf
在配置文件下添加以下内容[mysqld] #这个下面添加
server-id=1 #server的唯一标识
auto_increment_increment=2 #总共有2台主
auto_increment_offset=2 #这是第2台
log-slave-updates=1 # 共联同步
log-bin = mysql-bin #打开二进制功能,MASTER主服务器必须打开此项
max_binlog_size=1024M #binlog单文件最大值
grant replication slave on *.* TO 'cong'@'%' identified by 'aA12345678.';
systemctl restart mysqld
进入数据库
mysql> show master status\G
vim /etc/my.cnf
在配置文件下添加以下内容[mysqld] #这个下面添加
server-id=103 # 和其他设备的id不同即可
autocommit=1 # 自动提交事务,相对安全
lower_case_table_names=1 #表不区分大小写
查看主1的日志起始
进入数据库,连接主1库
mysql> \e
CHANGE MASTER TO
MASTER_HOST='10.8.161.9', # 指定库1的地址
MASTER_USER='cong', # 指定库1创建的用户名
MASTER_PASSWORD='aA12345678.', # 指定库1创建的密码
MASTER_LOG_FILE='mysql-bin.000002', # 指定主1库的日志文件名
MASTER_LOG_POS=321; # 指定主1库的日志起始位置
-> ;
配置完毕在从机启动并查看
mysql > start slave; #启动
mysql > show slave status\G #查看
以下配置jdk包和mycat包已上传的我的资源,可自行下载。
下载地址
https://download.csdn.net/download/qq_26129413/14009842
[root@mycat ~]# tar xzf jdk-8u221-linux-x64.tar.gz -C /usr/local/
[root@mycat ~]# cd /usr/local/
[root@mycat local]# mv jdk1.8.0_221/ java #改名为java
设置环境变量
[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
tar xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz -C /usr/local/
配置mycat
server.xml:用于配置系统参数、用户信息、访问权限及SQL防火墙和SQL拦截功能等
schema.xml:用于配置逻辑库、逻辑表相关信息
rule.xml:如果使用了水平切分,就需要使用该文件配置切分规则
log4j2.xml:Mycat日志相关的配置,例如日志输出格式、日志级别等
应用连接Mycat服务时,Mycat首先会通过server.xml中的配置信息进行用户认证。用户通过验证后,所看到的逻辑库、逻辑表都是schema.xml中所配置的。当使用了水平切分时,Mycat会通过rule.xml里配置的规则来定位具体的物理数据库位置,从而完成写入/读取数据。
①server.xml 配置
<mycat:server xmlns:mycat="http://io.mycat/">
<system>
<property name="useSqlStat">0property>
<property name="useGlobleTableCheck">0property>
<property name="sequnceHandlerType">2property>
<property name="processorBufferPoolType">0property>
<property name="handleDistributedTransactions">0property>
<property name="useOffHeapForMerge">1property>
<property name="memoryPageSize">1mproperty>
<property name="spillsFileBufferSize">1kproperty>
<property name="useStreamOutput">0property>
<property name="systemReserveMemorySize">384mproperty>
<property name="useZKSwitch">trueproperty>
system>
<user name="root" >
<property name="password">abc123.456property>
<property name="schemas">testdbproperty>
user>
mycat:server>
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="testdb" sqlMaxLimit="100" dataNode="dn1">
schema>
<dataNode name="dn1" dataHost="localhost1" database="testdb" />
<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="mysql-master" url="10.8.161.9:3306" user="root" password="aA12345678.">
<readHost host="mysql-slave" url="10.8.161.139:3306" user="root" password="aA12345678." />
<readHost host="mysql-slave3" url="10.8.161.141:3306" user="root" password="aA12345678." />
writeHost>
<writeHost host="mysql-master2" url="10.8.161.18:3306" user="root" password="aA12345678.">
<readHost host="mysql-slave2" url="10.8.161.140:3306" user="root" password="aA12345678." />
<readHost host="mysql-slave3" url="10.8.161.142:3306" user="root" password="aA12345678." />
writeHost>
dataHost>
mycat:schema>
cd /usr/local/mycat/bin # 进入mycat的启动bin目录
./mycat # 启动mycat
netstat -lntp # 查看端口,可以看到有8086端口说明配置成功
mysql -uroot -h10.8.161.14 -p'abc123.456' -P 8066 #这里的账号密码是我们在server.xml里配置的
登陆后可以查看到我们创建的testdb
这个虚拟库,当我们操作该库时,对应的是几个实体数据库的testdb库。
======================================================================================================================================================================================================================================================================================================
辛苦浏览观看,如果对你有帮助,请顺手点个赞吧 (σ゚∀゚)σ…:*☆