文章目录
前言
一. 主从配置
主机1
主机2
从机1
其余从机配置方法类似
二. Mycat配置
前言
实验环境:
系统: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顶上。反之一样。
一. 主从配置
主机1
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单文件最大值
进入主机1数据库,创建从机连接主机的账户。
grant replication slave on *.* TO 'cong'@'%' identified by 'aA12345678.';
重启数据库
systemctl restart mysqld
记下日志名字和起始位置
进入数据库
mysql> show master status\G
主机2
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单文件最大值
进入主机2数据库,创建从机连接主机的账户。
grant replication slave on *.* TO 'cong'@'%' identified by 'aA12345678.';
重启数据库
systemctl restart mysqld
记下日志名字和起始位置
进入数据库
mysql> show master status\G
从机1
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 #查看
二. Mycat配置
以下配置jdk包和mycat包已上传的我的资源,可自行下载。
下载地址
https://download.csdn.net/download/qq_26129413/14009842
部署jdk环境
[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
解压mycat包
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 配置
0property>
0property>
2property>
0property>
0property>
1property>
1mproperty>
1kproperty>
0property>
384mproperty>
trueproperty>
system>
abc123.456property>
testdbproperty>
user>
mycat:server>
②schema.xml配置
schema>
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
select user()heartbeat>
writeHost>
writeHost>
dataHost>
mycat:schema>
启动mycat服务
cd /usr/local/mycat/bin # 进入mycat的启动bin目录
./mycat # 启动mycat
netstat -lntp # 查看端口,可以看到有8086端口说明配置成功
5. 远程连接mycat虚拟库
mysql -uroot -h10.8.161.14 -p'abc123.456' -P 8066 #这里的账号密码是我们在server.xml里配置的
登陆后可以查看到我们创建的testdb这个虚拟库,当我们操作该库时,对应的是几个实体数据库的testdb库。
======================================================================================================================================================================================================================================================================================================
辛苦浏览观看,如果对你有帮助,请顺手点个赞吧 (σ゚∀゚)σ…:*☆