mysql 一主两从配置

简述mysql 主从复制原理及其工作过程

MySQL主从复制是一种数据同步方式,其中一个服务器作为主服务器(Master),负责处理事务性查询,另一个或多个服务器作为从服务器(Slave),负责复制主服务器上的数据,以保持数据一致性和负载均衡。

其主要的工作过程如下:
主服务器上的binlog日志记录了所有的数据修改操作。
从服务器连接主服务器,请求同步数据。
主服务器创建一个binlog dump线程,发送binlog内容给从服务器。
从服务器的I/O线程接收到binlog内容,并将其存储到自己的relay log中。
从服务器的SQL线程读取relay log并执行,实现数据同步。

安装mysql

yum install mysql-server

主库配置:

vim /etc/my.cnf.d/mysql-server.cnf

systemctl enable --now mysqld  启动服务

进去mysql 设置,授权用户


mysql> create user rep@'192.168.217.%' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.02 sec)

mysql> grant replication slave on *.* to rep@'192.168.217.%';
Query OK, 0 rows affected (0.02 sec)

mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000001 |      682 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql>

从库1配置

[root@localhost ~]# vim /etc/my.cnf.d/mysql-server.cnf

server_id=12


[root@localhost ~]# systemctl enable --now  mysqld
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
[root@localhost ~]#

mysql> change master to
    -> master_host='192.168.217.11',
    -> master_user='rep',
    -> master_password='123456',
    -> master_log_file='binlog.000001', ---主库配置show master status指令表格中的File
    -> master_log_pos=682;   ---主库配置show master status指令表格中的Position
Query OK, 0 rows affected, 8 warnings (0.05 sec)

mysql> start slave;--开启主从

Query OK, 0 rows affected, 1 warning (0.24 sec)

查看(是两个yes,主从配置成功)

 从库2配置 

[root@localhost ~]# vim /etc/my.cnf.d/mysql-server.cnf

server_id=13


[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]# systemctl enable mysqld
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
[root@localhost ~]#
mysql> change master to
    -> master_host='192.168.217.11',
    -> master_user='rep',
    -> master_password='123456',
    -> master_log_file='binlog.000001',
    -> master_log_pos=682;
Query OK, 0 rows affected, 8 warnings (0.04 sec)

mysql> start slave;

 检查

验证

在主库创建一个库                                                 创建一个表并写入一些数据

两个从库也有了

 

主库删除,从库也一并删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值