千家信息网

MySQL 主从同步与分离

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,说明:在实际生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性、高可用性,还是高并发等各个方面都是完全不能满足实际需求的,因此,一般来说都是通过主从复制的方式来同步数据,再通
千家信息网最后更新 2026年10月31日MySQL 主从同步与分离

说明:
在实际生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性、高可用性,还是高并发等各个方面都是完全不能满足实际需求的,因此,一般来说都是通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载 能力这样的方案来进行部署与实施。
MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先要部署主从复制,只有主从复制完成了,才能在此基础上进行数据的读写分离。

.
.
模拟搭建使用的服务器拓扑图如下

.
.
实验环境如下:

服务器安装MySQL5.5版本
.
.
实验包下载地址:
链接: https://pan.baidu.com/s/16n0zJBGeB3iGyRvXzxL5xA 密码: tcsn
.
.
实验步骤如下:
.
.
1 . 在主服务器上
先关闭防火墙,并检查是否安装了ntp,这里是默认安装好的
systemctl stop firewalld.service
setenforce 0 #关闭防火墙
rpm -q ntp #检查是否安装ntp

.
.
2 . 进入配置文件进行配置
vim /etc/ntp.conf
server 127.127.200.0 #本地是时钟源
fudge 127.127.200.0 stratum 8 #设置时间层级为8


systemctl start ntpd #开启时钟源

.
.
3 .接下来在从服务器1和从服务2做相同的操作
systemctl stop firewalld.service
setenforce 0 #关闭防火墙
systemctl start ntpd #开启时钟源
/usr/sbin/ntpdate 192.168.200.133 #向master同步时间


.
.
4 .回到主服务器
vim /etc/my.cnf #进行配置文件
server-id = 11 #服务器编号
......
log-bin=master-bin #更改日志名称,方便区别
log-slave-updates=true #允许从服务器日志文件同步主服务器日志文件



.
.
5 .进入数据库
GRANT REPLICATION SLAVE ON . TO 'myslave'@'192.168.200.%' IDENTIFIED BY '123123'; #给予权限
FLUSH PRIVILEGES; #刷新,即时生效
show master status; #查看日志文件名


.
.
6 .回到从服务器,两台从服务器做相同操作
vim /etc/my.cnf #进行配置文件
server-id = 22 #更改端口号。注意,从服务器2的端口号不能与主、从服务器1相同
relay-log=relay-log-bin #指定从服务器日志文件
relay-log-index=slave-relay-bin.index #指定文件名与位置,
systemctl restart mysqld.service #重启数据库



.
.
7 . 进入数据库
change master to master_host='192.168.200.133',master_user='myslave',master_password='123123',master_log_file='master-bin.000001',master_log_pos=339; #给凭证
start slave; #开启从服务器身份
show slave status \G; #查看同步状况
Slave_IO_Running: Yes
Slave_SQL_Running: Yes #显示yes 说明已经开始同步



.
.
8 .这时候就可以在主服务器数据库中,新建一个数据库,验证是否同步



同步成功
.
.
主从同步做好后,下面进行读写分离操作
.
.
1 .进入代理服务器--amoeba,首先还是老一步操作
systemctl stop firewalld.service
setenforce 0 #关闭防火墙
mkdir /ooo #创建一个目录,挂载用
mount.cifs //192.168.200.1/gx /ooo/ #将文件挂载到目录内
cd /ooo/ #进入目录
cp jdk-6u14-linux-x64.bin /usr/local/ #拷贝到系统文件下,让系统能识别
cd /usr/local/
./jdk-6u14-linux-x64.bin #安装java环境包


.
.
2 . 将文件移动或复制到/usr/目录下
mv jdk1.6.0_14/ /usr/local/jdk1.6 #移动至系统文件下
vim /etc/profile #进入配置文件,在末尾添加如下环境变量,系统可以用安装文件中的命令与函数:
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba
export PATH=$PATH:$AMOEBA_HOME/bin


source /etc/profile #刷新生效
.
.
3 . 解压文件到指定目录下
mkdir /usr/local/amoeba #创建一个文件夹
cd /ooo/
tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/ #将压缩文件解压到此目录文件下


.
.
4 . 给予文件相对的权限
chmod -R 755 /usr/local/amoeba/
/usr/local/amoeba/bin/amoeba
amoeba start|stop #代表安装成功


.
.
5 . 在三台MySQL上添加权限开放给amoeba访问
grant all on . to 'test'@'192.168.201.%' identified by '123123';#amoeba使用test帐户访问三台数据库


.
.

6 . 然后回到代理服务器,进行配置文件的操作
cd /usr/local/amoeba
vim conf/amoeba.xml
30行---
root #更改用户名
32行---
123123 #密码

115行--117-
master #最大权限 给master
master #写入权限 给master
slaves #读取权限


.
.
7 . 进入下一个配置文件,进行配置
vim conf/dbServers.xml
--26--29---去掉注释
test #登录身份
123.com #登录密码

--42-47---主服务器
< dbServer name="master" parent="abstractServer"> #主服务为master
< property name="ipAddress">192.168.201.131 #主服务器ip地址
--50-54--从服务器1
< dbServer name="slave1" parent="abstractServer"> #从服务器1
192.168.201.129 #ip地址
复制6行做从服务2

--63---
< dbServer name="slaves" virtual="true"> #从服务器池
--70---
slave1,slave2 #定义两台从服务


.
.
8 . 到此,就可以开启服务了
/usr/local/amoeba/bin/amoeba start& #开启amoeba服务


.
.
9 .进入客户端
systemctl stop firewalld.service
setenforce 0 #关闭防火墙
yum install mysql -y #安装MySQL命令


.
.
10 .mysql -u amoeba -p123123 -h 192.168.200.131 -P8066 #登录到群集数据库

.
.
此时,从服务器只能读取主服务器,客户端能读取从服务器,写入到主服务器

服务 服务器 文件 数据 数据库 同步 配置 权限 目录 主从 日志 防火墙 防火 环境 系统 相同 地址 密码 时钟 实验 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 蓝思科技飞鸽互联网 苏州找大状互联网科技有限公司 百单互联网科技有限公司 上海喔噻互联网科技 科技创新互联网企业 深圳天众互联网科技公司 撒么互联网科技公司 互联网金融科技委员会 互联网科技有限公司 翻译 重庆威客帮互联网科技 移动互联网年度科技创新 中国互联网十大科技股排名 互联网科技和法律行业 山东有哪些互联网科技公司 互联网方面的科技前沿 21世纪互联网科技成就 互联网科技职业技能培训学校 广西泛欧互联网科技有限公司 北京瑞云互联网科技有限公司 宁波允成互联网科技有限公司 互联网科技公司华为 美国互联网保险保险科技 碳银互联网科技 互联网科技产业特征 美国互联网科技实力 山东子淼互联网科技有限公司 启辰互联网科技 上海同邻互联网科技有限公司规模 陕西彩京云互联网科技有限公司 如何强化互联网金融科技
0