MYSQL主从同步部署
程序员文章站
2024-03-20 23:54:40
...
实现原理
mysql主从同步主要依靠的是两个线程:IO线程和SQL线程
如图,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;
可以看到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,配置主库信息
start slave;
show slave status\G; //查看状态,无报错即配置成功
注意:如果配置主从同步后,主库修改从库中不存在的数据库,会让主从同步失效,使SQL线程报错。
配置完成后查看一下data文件中存在:relaylog.00001、relaylog.index、relay-log.info、master.info,这四个文件分别记录sql语句、relaylog文件信息、relaylog配置信息、master信息,如需将从库恢复为独立数据库,删除这四种文件,重启mysql即可。