MySQL主从复制

原理:

MySQL主从复制是指将一个MySQL数据库的数据实时复制到另一个MySQL数据库的过程。

  1. 主数据库(Master)记录所有的数据变更操作,包括插入、更新和删除操作。这些操作会被写入到二进制日志(Binary Log)中。

  2. 从数据库(Slave)连接到主数据库,并请求从主数据库获取二进制日志的内容。

  3. 主数据库将二进制日志的内容发送给从数据库。

  4. 从数据库将接收到的二进制日志内容应用到自己的数据库中,实现数据的复制。

  5. 从数据库会周期性地向主数据库发送心跳信号,以检测主数据库的状态。如果主数据库出现故障,从数据库可以自动切换为主数据库,继续提供服务。

主从复制的实现依赖于MySQL的二进制日志功能。主数据库将所有的数据变更操作写入到二进制日志中,从数据库通过读取二进制日志的内容来进行数据复制。由于二进制日志记录了所有的数据变更操作,因此可以确保从数据库与主数据库的数据保持一致。

主从复制可以提供数据的冗余备份,增加数据库的可用性和可靠性。同时,主从复制还可以用于读写分离,将读操作分发到从数据库,减轻主数据库的负载。

实操:

实验环境:两台CentOS7,MySQL5.7.43

主机配置:

1.开放3306号端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
 
firewall-cmd --zone=public --list-ports

2.启动MySQL服务,登录查看

退出命令:exit;

3.修改数据库配置文件

vi /etc/my.cnf

4.重启MySQL服务

systemctl restart mysqld

5.创建用户,便于授权

查看密码校验策略等级:show variables like '%validate_password_policy%';

查看密码长度要求:show variables like '%validate_password_length%';

更改密码校验等级为0:set global validate_password_policy=0;

更改密码长度要求为1:set global validate_password_length=1;

创建用户并授予权限:GRANT REPLICATION SLAVE ON *.* to '用户名'@'%' identified by '密码';

GRANT REPLICATION SLAVE ON *.* to 'test'@'%' identified by 'Root@123456';

6.查看同步状态

show master status;

从机配置:

1.修改数据库配置文件

vi /etc/my.cnf

2.重启MySQL服务

systemctl restart mysqld

3.登录数据库设置同步

用户名,密码,ip及磁道根据自己的来

change master to master_host='192.168.80.142',master_user='test',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=429;


 开启主从服务:start slave;

4.查看数据库状态

show slave status\G;

STOP SLAVE IO_THREAD;

证明启动成功,实验结束

易错点:

如果发现IO连接错误,先排查是不是直接从主机所在的虚拟机完全克隆来的从机,如果是,需要修改库名如下,若不是,检查用户名,密码,磁道,备份文件是否正确

1.find / -iname "auto.cnf"

找到配置文件,每个人可能安装位置不同

2.vi /var/lib/mysql/auto.cnf

打开修改,任意改一位就行

3.systemctl restart mysqld

重启服务

4.stop slave;start slave;

进入MySQL刷新主从服务

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值