暂无图片
暂无图片
6
暂无图片
暂无图片
暂无图片

MySQL主从复制

原创 刘贵宾 2022-12-06
354

今天为大家分享MySQL高可用的基础-主从复制,特别简单的操作,看完你也能轻轻松松搭建起来。

介绍:

Mysql主从又叫Replication、AB复制。就是A与B两台数据库服务器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步

作用:
实时灾备,主从库用于故障切换

读写分离,从库提供查询服务

备份从库,避免影响主库业务


MySQL主从复制原理


1、主库将所有的写操作记录在binlog日志中,并生成logdump线程,将binlog日志传给从库的I/O线程

2、从库生成两个线程,一个是I/O线程,另一个是SQL线程

3、I/O线程去请求主库的binlog日志,并将binlog日志中的文件写入relay log(中继日志)中

4、SQL线程会读取relay loy中的内容,并解析成具体的操作,来实现主从的操作一致,达到最终数据一致的目的


MySQL主从复制形式



MySQL主从复制配置步骤-总体


1、确保从数据库与主数据库里的数据一致

2、在主数据库里创建一个同步账户授权给从数据库使用

3、配置主数据库(修改配置文件)

4、配置从数据库(修改配置文件)


MySQL主数据库配置步骤-主库

1、停止对主库的数据写入操作,对主库做全库备份,并上传至从库

mysqldump -uroot -p密码 --all-databases > /disk1/all-2020mysql.sql

scp /disk1/all-2020mysql.sql  root@192.168.1.12:/disk1/

2、创建同步账号授权给从数据库使用

create user 'repl'@'192.168.1.12' identified by '密码';

grant replication slave on *.* to 'repl'@'192.168.1.12';

flush privileges;

3、配置主数据库编辑配置文件my.cnf

vi /etc/my.cnf

//添加以下内容

log-bin=mysql-bin #日志文件名

server-id=1 #服务ID,用于区分服务

log-slave-updates=true #从服务器更新二进制日志

sync_binlog=1 #控制数据库的binlog刷到磁盘

expire_logs_days=2 #binlog过期清理时间

4、重启主数据库

systemctl restart mysqld.service

5、查看主数据库状态

show master status\G;



MySQL主数据库配置步骤-从库

1、根据主库备份在从库进行数据恢复

mysql -uroot -p密码 < /disk1/all-2020mysql.sql

2、配置从数据库编辑配置文件my.cnf

server-id=2 #服务ID

relay-log=mysql-relay-bin #日志文件名

relay-log-index=slave-relay-bin.index #日志索引

read_only=ON #只读

3、重启从数据库

systemctl restart mysqld.service

4、配置并启动主从复制

mysql>change master to master_host='192.168.1.11',master_user='repl',

master_password='repl密码',master_log_file='mysql-bin.000001',

master_log_pos=154;

mysql>start slave;

5、查看从数据库状态

show slave status\G;




至此,MySQL主从复制就宣告成功了!赶紧动手试试吧

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论