mysql高级:主从复制

1. 复制的基本原理

slave会从master读取binlog来进行数据同步

三步骤+原理图

 MySQL复制过程分成三步: 

1 master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events; 

2 slave将master的binary log events拷贝到它的中继日志(relay log); 

3 slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的 

master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events

slave将master的binary log events拷贝到它的中继日志(relay log)

扫描二维码关注公众号,回复: 9013990 查看本文章

slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的

2. 复制的基本原则

每个slave只有一个master

每个slave只能有一个唯一的服务器ID

每个master可以有多个salve

3. 复制的最大问题(延时)

4. 一主一从常见配置

(1)mysql版本一致且后台以服务运行

(2)主从都配置在[mysqld]结点下,都是小写

(3)主机修改my.ini配置文件

主服务器唯一ID:server-id=1

启用二进制日志:

log-bin=自己本地的路径/data/mysqlbin

log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin

设置不要复制的数据库

binlog-ignore-db=mysql

设置需要复制的数据库

binlog-do-db=需要复制的主数据库名字(设置一个之前没有的数据库)

设置logbin格式

binlog_format=STATEMENT(默认)

binlog_format=STATEMENT (默认) 
binlog_format=ROW 

mysql主从复制起始时,从机不继承主机数据

从机配置文件修改my.cnf的[mysqld]栏位下

注意my.cnf 中有server-id = 1 


server-id = 2


relay-log=mysql-relay

因修改过配置文件,请主机+从机都重启后台mysql服务

主机从机都关闭防火墙

windows手动关闭

关闭虚拟机linux防火墙    service iptables stop

在Windows主机上建立帐户并授权slave

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'从机器数据库IP' IDENTIFIED BY '123456';

查询master的状态

show master status;

记录下File和Position的值

执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

在Linux从机上配置需要复制的主机

CHANGE MASTER TO MASTER_HOST='主机
IP',MASTER_USER='zhangsan',MASTER_PASSWORD='123456',MASTER_LOG_FILE='File
名字',MASTER_LOG_POS=Position数字;
CHANGE MASTER TO MASTER_HOST='192.168.154.1', 
MASTER_USER='zhangsan', 
MASTER_PASSWORD='123456', 
MASTER_LOG_FILE='mysqlbin.具体数字',MASTER_LOG_POS=具体值; 

启动从服务器复制功能

start slave;
show slave status\G

下面两个参数都是Yes,则说明主从配置成功!

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

主机新建库、新建表、insert记录,从机复制

如何停止从服务复制功能

stop slave;
发布了284 篇原创文章 · 获赞 45 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qq_31784189/article/details/103689908
今日推荐