mysql主从复制+读写分离(实验操作笔记)

发布于:2025-02-10 ⋅ 阅读:(34) ⋅ 点赞:(0)

目录

主从复制前提准备:

1. 修改hosts文件以及修改主机名称

2. 关闭防火墙

3. 时间同步

一、 单主复制

传统复制:

GTID复制:

二、 双主复制

mycat读写分离

前提准备:

mycat开始部署:


主从复制前提准备:

1. 修改hosts文件以及修改主机名称
vim /etc/hosts
    192.168.180.110 master
    192.168.180.120 slave01
    192.168.180.130 slave02

hostnamectl set-hostname master && bash
hostnamectl set-hostname slave01 && bash
hostnamectl set-hostname slave02 && bash
2. 关闭防火墙
setenforce 0 && systemctl stop firewalld && systemctl disable firewalld
3. 时间同步
#在master上
yum -y install ntp

#配置NTP
vim /etc/ntp.conf
    server 127.127.1.0 
    fudge 127.127.1.0 stratum 8

#开启
systemctl start ntpd && systemctl enable ntpd

#在两台slave上安装时间同步
yum install -y ntpdate
ntpdate 192.168.180.110

4. 安装mysql,我使用的是二进制方式安装,具体的二进制安装过程可详细查看二进制安装mysqlicon-default.png?t=O83Ahttps://blog.csdn.net/m0_68472908/article/details/144746891?spm=1001.2014.3001.5501


这里将逐一展示单主复制以及双主复制

一、 单主复制

传统复制:

1. 在master上配置my.cnf文件

vim /etc/my.cnf
    server-id = 100
    log_bin = mysql-bin

systemctl restart mysqld

2. 在master上创建用户

mysql -uroot -pabc-123

grant replication slave on *.* to 'repluser'@'192.168.180.%' identified by 'ABCabc-123';
flush privileges;
show master status\G;

3. 在两台slave上配置server-id

#slave1
vim /etc/my.cnf
    server-id = 101

#slave2
vim /etc/my.cnf
    server-id = 102

systemctl restart mysqld

4. 在两台slave上链接到master

mysql -uroot -pabc-123

change master to 
master_host="192.168.180.110",
master_user="repluser",
master_password="ABCabc-123",
master_port=3306,
master_log_file="mysql-bin.000001",
master_log_pos=605;

#启用slave
start slave;

#查看slave的状态,两个都要是yes才是正确的
show slave status\G;

5. 在master上创建库

create database test_db;

6. 在两台slave上查看库,有无

show databases;


GTID复制:

1. 在master上配置文件

vim /etc/my.cnf
    gtid_mode = ON
    enforce_gtid_consistency = true

systemctl restart mysqld

2. 在两台slave上配置文件

vim /etc/my.cnf
    gtid_mode = ON
    enforce_gtid_consistency = true

systemctl restart mysqld

3. 两台slave配置

mysql -uroot -pabc-123

stop slave;
change master to 
master_host="192.168.180.110",
master_user="repluser",
master_password="ABCabc-123", 
master_auto_position=1;

start slave;
show slave status\G;


二、 双主复制

1. 在master上同步用户到第二台主

mysql -uroot -pabc-123

grant replication slave on *.* to 'repluser'@'192.168.180.%' identified by 'ABCabc-123';
flush privileges;

2. 在slave1上查看

select user,host from mysql.user;

3. 在slave1上开启二进制

vim /etc/my.cnf
    log_bin = mysql-bin

systemctl restart mysqld

4. 在master

change master to 
master_host="192.168.180.120",
master_user="repluser",
master_password="ABCabc-123", 
master_auto_position=1;

start slave;
show slave status\G;

5. 在master上创建表

create table test_db.test(id int,name varchar(10));
insert into test_db.test values(1,'zs');

6. 在slave1上查看,有无同步

select * from test_db.test;

7. 在slave2上添加配置

vim /etc/my.cnf
    master_info_repository = TABLE
    relay_log_info_repository = TABLE

systemctl restart mysqld

#配置通道,从服务器同时监控两台主服务器:
mysql -u root -pabc-123

stop slave;
change master to 
master_host="192.168.180.110",
 master_user="repluser",
 master_password="ABCabc-123", 
master_auto_position=1 for channel "master1"; 

change master to 
master_host="192.168.180.120",
 master_user="repluser", 
master_password="ABCabc-123", 
master_auto_position=1 for channel "master2";

start slave;
show slave status\G;

8. 在slave1上插入数据

insert into test_db.test values(2,'ls');

9. 在slave2上查看是否同步

select * from test_db.test;

主从复制到这里就完成了⭐


接下来是mycat读写分离的实验操作步骤部分

mycat读写分离

前提准备:

1. 基于前面的主从复制的环境进行部署

2. 在三台mysql上添加hosts记录

vim /etc/hosts
    192.168.180.140 mycat

mycat开始部署:

1. 安装时间同步

yum install -y ntpdate
ntpdate 192.168.180.110

2. 修改主机名称

hostnamectl set-hostname mycat && bash

3. 安装JDK

yum install -y java-1.8.0-openjdk.x86_64

4. 上传mycat并安装

tar zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
useradd -M -s /sbin/nologin mycat
chown -R mycat:mycat /usr/local/mycat
echo "export MYCAT_HOME=/usr/local/mycat" >> /etc/profile
source /etc/profile
echo $MYCAT_HOME

5. 修改主配置文件

vim /usr/local/mycat/conf/server.xml

把这一段后面的<user name>都删除

6. 修改辅助配置文件

vim /usr/local/mycat/conf/schema.xml

将这两个中间的都注释掉

修改为之前创建的库,并把后面两个注释

在这个下面添加内容

<writeHost host="hostM1" url="192.168.180.110:3306" user="mycat"  password="abc-123">
    <readHost host="hostS1" url="192.168.180.130:3306" user="mycat"  password="abc-123" />
</writeHost>
<writeHost host="hostM2" url="192.168.180.120:3306" user="mycat"  password="abc-123">
    <readHost host="hostS2" url="192.168.180.130:3306" user="mycat"  password="abc-123" />
</writeHost>

7. 启动mycat

/usr/local/mycat/bin/mycat start
netstat -nultp | grep -e 8066 -e 9066


网站公告

今日签到

点亮在社区的每一天
去签到