欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MYSQL主从同步部署

程序员文章站 2024-03-20 23:54:40
...

实现原理

mysql主从同步主要依靠的是两个线程:IO线程和SQL线程
MYSQL主从同步部署
如图,IO线程去请求master的binlog中的sql语句,并将其写入slave的relaylog中;SQL线程通过读取和执行relaylog中的语句来复现master的操作。

主从同步部署(以一主一从为例)

①编辑主库配置文件,开启binlog

[mysqld]
server_id=1									//指定id号
log-bin=/opt/binlog/binlog      //指定binlog路径
binlog_format="mixed"				//指定binglog模
注意:可以通过binlog_do_db或binlog_ignore_db限制binlog记录哪些库

重启服务,登录数据库,查看master状态

show master status;

MYSQL主从同步部署
可以看到binlog文件名为binlog.000001,position为154,这些我们一会要用到。
②账户授权
为从库授权一个用于同步的账户

grant replication slave on *.* to aaa@qq.com"%" identified by "123456";

③配置从库
修改从库配置文件

[mysqld]
server_id=2
relay_log=/opt/binlog/relaylog
同样的,可以通过replicate_do_db和replicate_ignore_db限制复制哪些库

重启mysql,配置主库信息
MYSQL主从同步部署

start slave;
show slave status\G;         //查看状态,无报错即配置成功

注意:如果配置主从同步后,主库修改从库中不存在的数据库,会让主从同步失效,使SQL线程报错。
配置完成后查看一下data文件中存在:relaylog.00001、relaylog.index、relay-log.info、master.info,这四个文件分别记录sql语句、relaylog文件信息、relaylog配置信息、master信息,如需将从库恢复为独立数据库,删除这四种文件,重启mysql即可。