MySQL 主从复制

1. MySQL 主从复制

​ MySQL 主从复制是MySQL最重要的功能之一,主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。MySQL主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。

  • 复制就是将一台服务器上的数据转移到另一台服务器上的过程

  • 主从复制属于单向流动由主到从

  • 主从复制属于异步同步,是从服务器通过抓取主服务器的二进制日志文件,解析文件中的SQL语句,所进行的同步

  • 主从复制可以在主服务器宕机时,从服务器可以提供与主服务器相同的内容

  • Master 为主

  • Slave 为从服务器

2. 主从复制过程

​ 1) 主服务器将数据改变的内容的存放到二进制日志文件中

​ 2) 从服务器通过io线程将二进制日志复制到中继日志中(relay-log)

​ 3) 从服务器通过SQL线程执行中继日志中的事件,得到和主服务器一样的数据

3. 配置主从复制

  • 安装mysql

1) 创建授权用户

  • 用于Slave 在Master中拉取数据
    • 用户 slave 密码 123.com
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'1.1.1.%' IDENTIFIED BY '123.com';

2) Master 数据库开启二进制日志文件

[root@localhost ~]# vim /etc/my.cnf
	添加/修改:
	server-id = 1			    # 服务id号,不能重复;
	log-bin=master-bin			# 启动master主二进制日志文件
	log-slave-updates=true		 # 允许从服务器复制更新
  • 重新MySQL
systemctl restart mysqld

3) Slave 数据库服务器配置(开启中继日志)

  • 中继日志用于拉取数据过来,进行存放
[root@localhost ~]# vim /etc/my.cnf
	添加/修改:
	server-id = 2
	relay-log=relay-log-bin				   # 启动中继文件
	relay-log-index=slave-relay-bin.index	# 启用中继文件索引
  • 重启MySQL服务
systemctl restart mysqld

4) 重新制定 Slave 的Master

  • 数据库默认的Master是本身

    • 需要重新指定
  • 首先在Master 服务器查看Master状态信息

    • file 当前使用的二进制日志文件
    • Position 当前二进制日志文件的偏移量
mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 |      120 |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
  • 在 Slave 中指定Master
 mysql> change master to 
 master_user='slave1',
 master_host='1.1.1.101' ,
 master_password='123.com',
 master_log_file='master-bin.000001',
 master_log_pos=120;

参数:

 change master to 				 // 更改 Master
 master_user='slave',			 // 指定登录用户
 master_host='1.1.1.101' ,		 // 指定Master地址
 master_password='123.com',      // 指定Password
 master_log_file='master-bin.000001',	// 当前所使用的二进制日志文件
 master_log_pos=120;			// 偏移量从哪里开始复制

5) 启动复制功能

mysql> start slave;

6) 查看Slave 状态

  • 查看以下两个值是否为 yes
    • Slave_IO_Running: Yes
    • Slave_SQL_Running: Yes
mysql> show slave status\G;

7) 测试验证

  • 在Master 中创建数据库
mysql> create database cjk;	
  • Slave 查看
	mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cjk                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.08 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值