mysql一主一从搭建

https://blog.csdn.net/weixin_43879074/article/details/88525006(参考链接)


1. 主从同步的定义

将两个不同的数据库分别部署,一个设置为master数据库负责对数据进行写入,一个设置为slave服务器负责对数据的搜索,master数据库将写入的记录保存到binlog文件中,slave数据库检测master的binlog文件的变化,将变更的记录同步到自身,从而保证master数据库跟slave数据库的数据一致性,这就是主从同步

2. 主从同步的实现原理

  1. 从库执行start slave语句,从库创建了IO线程 以及 Sql执行线程
  2. 创建了IO线程的同时,IO线程连接到主库,并且请求主库返回binlog中的变更记录
  3. 主库检测到从库的连接,给该从库的连接创建一个dump log线程用来给从库 i/o线程binlog
  4. 主库将变更的binlog日志传递给从库
  5. 从库的IO线程将读取到主库返回的binlog文件,将文件写入relay log文件
  6. 从库的Sql执行线程读取relay log文件更新数据

3. 为什么要使用主从同步

  1. 数据的热备份,对数据进行“半即时”备份
  2. 读写分离, 降低主数据库的压力, 将主要的查询业务分配到从数据库上执行,主数据库主要负责数据的写入以及少部分的查询业务
  3. 实时灾备,用于故障切换

4. 搭建主从复制环境

4.1. 数据库信息

主库域名:MySql_Master1
从库域名:MySql_Slave1

4.2. master数据库配置

4.2.1. 编辑my.cnf配置

vim /etc/mysql/my.cnf

[mysqld]
server-id=1
log-bin=mysql-bin

重启mysql服务是my.cnf生效

4.2.2. 创建用于同步的slave用户

进入 master数据库 执行以下语句

create user ‘slave’@‘localhost’ identified by ‘123456’;
grant replication slave on . to ‘myslave’@’%’
FLUSH PRIVILEGES;

SHOW MASTER STATUS查看master服务配置信息

±--------------±---------±-------------±-----------------±------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
±--------------±---------±-------------±-----------------±------------------+
| binlog.000006 | 156 | | | |
±--------------±---------±-------------±-----------------±------------------+

4.3. slave数据库配置

4.3.1. 编辑my.cnf配置

vim /etc/mysql/my.cnf

[mysqld]
server-id=2
# 非必须
# log-bin=mysql-bin

重启mysql服务是my.cnf生效

4.3.2. 配置master数据库

停止slave服务

stop slave;

设置master数据库信息

change master to master_host='MySQL_Master1',master_user='slave',master_port=3306,master_password='123456',master_log_file='binlog.000006',master_log_pos=156;

启动slave服务

start slave;

查看slave配置信息

show slave status\G;

# 显示的信息中开启了io线程以及sql执行线程表示开启成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

4.4. 查看主从同步效果

在主数据创建数据库test

CREATE DATABASE test

切换master, 查看master数据库的列表数据

±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
±-------------------+

切换slave, 查看slave数据库的列表数据

±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
±-------------------+

从上面可以看出在master数据库创建了test数据库之后,在slave也同样创建了数据库test

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值