MySQL 简易主从复制

MySQL 主从复制 一般一个主服务器,一个从服务器(可以实现读写分离),主表用来写数据,从表用来读数据。

MySQL复制过程分成三步:
1、master 将改变记录到二进制日志文件(binary log)。 这些记录过程叫做二进制日志文件,binary log events
2、slave 将master 的binary log events 开被盗它的中继日志(relay log)
3、slave重做中继日志中的事件,将改变应用到自己数据库中。

MySQL复制时异步而且串行化的

每个slave只有一个master 每个slave 只能有一个唯一的服务器ID 每个master可以有多个slave

一主一从 常见配置(使用WIndow和Ubuntu虚拟机测试)

1、mysql版本一致。

2、测试ping通 即可以进行连接
MySQL 简易主从复制_第1张图片
MySQL 简易主从复制_第2张图片

3、
主机修改Windows下my.ini配置文件 修改 配置文件没有就新增到 mysqld模块下
主服务器唯一ID (必须) 如 server-id = 1
启用二进制日志文件(必须)如 log-bin=本地路径/mysqlbin
read-only=0 # 可选 主机读写都可以
binlog-ignore-db=mysql # 可选设置不要复制的数据库
binlog-do-db=stusents # 可选 设置需要复制的数据库
MySQL 简易主从复制_第3张图片
从机修改my.cnf配置文件 不同版本mysql可能配置文件有差别。主要内容是一致的
从服务器唯一ID(必须) 如 server-id=2
启用二进制文件(可选)
MySQL 简易主从复制_第4张图片
4、修改完成后 MySQL服务都要重启。

5、Windows和Ubuntu关闭防火墙
window手动关闭
linux 下(如果没装过就不必关闭) service iptables stop

6、WIndows主机上授权账户并授权slave

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

授权复制给从机,允许从机以 feng 作为用户名 123456 作为密码登录到主机
执行完 刷新 flush privileges;

执行 show master status;
MySQL 简易主从复制_第5张图片
记录下 File 和 Position的值

7、Linux从机下配置需要复制的主机。

CHANGE MASTER TO MASTER_HOST="主机IP",
MASTER_USER="feng",
MASTER_PASSWORD="123456",
MASTER_LOG_FILE="mysqlbin.具体数字",
MASTER_LOG_POS=具体值;

CHANGE MASTER TO MASTER_HOST="192.168.124.30",
MASTER_USER="feng",
MASTER_PASSWORD="123456",
MASTER_LOG_FILE="mysql-bin.000003",
MASTER_LOG_POS=154;

MySQL 简易主从复制_第6张图片
启动从服务器复制功能 start slave;

查看状态

show slave status\G

Slave_IO_Running 和 Slave_SQL_Running 必须同时 为 yes 才表示成功
OK
8、可以使用主服务器测试了。。。

create database hero;
use hero;
create table hero(id int primary key auto_increment, heroName varchar(10) not null, age int default 18);
insert into hero values(0, "张无忌", 20);
insert into hero values(0, "郭靖", 20);
insert into hero values(0, "杨过", 20);

从服务器查看
MySQL 简易主从复制_第7张图片

9、stop slave; 停止从服务复制功能。

如果第7步失败 可以 stop slave;后主机再次查看

你可能感兴趣的:(数据库,MySQL)