一、复制的基本原理
1.1 原理图
slave会从master读取binlog来进行数据同步
1.2 三步骤Mysql复制过程分成三步:
1.master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;
2.slave将master的binary log events拷贝到它的中继日志(relay log);
3.slave重做中继日志中的事件,将改变应用到自己的数据库中。Mysql复制是异步的且串行化的
1.3 复制的基本原则每个slave只有一个master
每个slave只能有一个唯一的服务器ID
每个master可以有多个slave
复制的最大问题:延时
二、一主一从常见配置mysql版本一致且后台以服务运行
主从都配置在[mysqld]结点下,都是小写
2.1 主机修改my.ini配置文件- 主服务器唯一ID:server-id=1
- 启用二进制日志:log-bin=自己本地的路径/data/mysqlbin
- 设置不要复制的数据库:binlog-ignore-db=mysql
- 设置需要复制的数据库:binlog-do-db=需要复制的主数据库名字
- 设置logbin格式:binlog_format=statement(默认)
mysql主从复制起始时,从机不继承主机数据
2.2 从机配置文件修改my.cnf的[mysqld]栏位下- server-id=2
- relay-log=mysql-relay
因修改过配置文件,请主机+从机都重启后台mysql服务
grant replication slave on *.* to 'lisi'@'从机数据库ip' identified by '密码';
查看master的状态
记录下File和Position的值
切记,执行完此步骤后不要再操作主服务器mysql,防止主服务器状态值变化。
2.4.4 在linux从机上配置需要复制的主机1.从机绑定主机,拜大哥
change master to master_host='主机ip',
master_user='zhangsan',
master_password='123456',
master_log_file='File名字',
master_log_pos=Position数字;
2.启动从服务器复制功能
start slave;
3.查看从机状态
show slave status\G;
下面两个参数都是Yes,则说明主从配置成功!
Slave_IO_Running:Yes
Slave_SQL_Running: Yes
主机新建库、新建表、insert记录、从机复制
如何停止从服务复制功能?
stop slave;
如何重新配置主从?
stop slave;
reset master;
视频教程