【MySQL】mysql实现主从复制(Linux)

本文详细介绍MySQL主从复制的配置步骤与原理。包括设置server-id、logbin、创建复制账号、配置从库等关键步骤。适用于希望了解或实现MySQL主从同步的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

        之前写过Windows版本的MySQL主从复制,和Linux的基本一致,权当重新温习一遍罢。

原理

        原理这个东西上次没有写,一并补上。


        Master上有一个IO线程,Slave上有两个线程,分别是IO和SQL。下面是主从复制五步原理。

1、Slave服务器执行start slave;

2、Slave服务器会通过在Master上授权的复制用户权限请求连接Master服务器,并请求从指定Binlog日志文件的指定位置之后发送Binlog日志内容;

3、Master服务器接收到来自Slave服务器的IO线程的请求后,Master服务器上负责复制的IO线程根据Slave服务器IO线程请求的信息读取指定Binlog日志文件指定位置之后的Binlog日志信息,然后返回给Slave端的IO线程。返回的信息中除了Binlog日志内容外,还有本次返回日志内容后再Master服务器端的新的Binlog文件名称以及在Binlog中的下一个指定更新的位置;

4、当Slave服务器的IO线程获取到来自Master服务器上的IO线程发送日志内容及日志文件及位置点后,将Binlog日志内容依次写入到Slave端自身的Relay Log(中继日志)中文件(MySQL-relay-bin.xxxxxx)的最末端,并将新的Binlog文件名和位置记录到master-info文件中,以便下一次读取Master端新Binlog日志时能够告诉Master服务器需要从新Binlog日志的哪个文件哪个位置开始请求新的Binlog日志内容;

5、Slave服务器端的SQL线程会实时的检测本地的Relay Log中新增加的日志内容,然后及时的把Log文件中的内容解析成在Master端曾经执行过的SQL语句,并在自身Slave服务器上安语句的顺序执行应用这些SQL语句,应用完毕后清理应用过的日志。

MySQL主从复制

1、设置server-id,logbin

#vi /etc/my.cnf(server-id主从不同即可)


        主机需要设置server-id和log-bin,如果只是主从复制的话,从机只需要设置server-id,如果需要互为主从,就需要两个都配置。

2、Master建立账户并授权Slave

mysql>grant replication slave on *.* to 'rep'@'192.168.%.%' identified by 'root';//授权一个用户名为rep,密码为root的账户,*.*代表所有库的所有表(可以指定库.表),ip代表只能该ip段下有权限访问。


3、查询Master状态

mysql>show master status;//记录此时的file和position,停止更新主库,必要时可上锁:flush table with read lock;


4、配置Slave

mysql>change master to

         >master_host='Master地址',

         >master_port=mysql端口号,//不加引号

         >master_user='rep',

         >master_password='root',

         >master_log_file='第三步记录的file',

         >master_log_pos=第三步记录的position;//不加引号

5、启动Slave主从复制功能

mysql>start slave;

6、检查Slave状态

mysql>show slave status\G;


7、重启mysql,刷新权限

#service mysql restart//重启

mysql>flush privileges;//刷新权限

总结

        现在基本就可以就没有什么问题了,如果需要进行互为主从的配置,只需要把上边的操作,主从换一下,再来一遍就可以了,没有什么难度。

评论 71
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值