mysql 主从复制

主从复制的功能

mysql 主从复制_第1张图片
mysql 主从复制_第2张图片

主从复制的原理

Slave 会从 Master 读取 binlog 来进行数据同步
mysql 主从复制_第3张图片
mysql 主从复制_第4张图片
复制的基本原则

  1. 每个Slave 只有一个 Master
  2. 每个Slave 只能有一个**唯一的服务器ID
  3. 每个Master 可以有**多个Slave****

一主-从 架构搭建

mysql 主从复制_第5张图片

虚拟机克隆的主从机注意点

新克隆的主机要修改如下信息:

  1. MAC 地址
  2. hostname
  3. IP 地址
  4. UUID
  5. MySQL Server(若被克隆主机有)UUID

show slave status \G
mysql 主从复制_第6张图片

主机配置文件

[mysqld]

主服务器唯一 ID 必须

server-id=xx
#启用binlog,指明路径,比如: /log/mysqlbin 如不指定,则是数据库主目录下 必须
log-bin=xxxx-bin

0:默认,表示读写(主机) 1:表示只读(从机) 可选

read-only=0

设置日志文件保留的时长,单位是秒 可选

binlog_expire_logs_seconds=xxxxxx

控制单个binlog大小,此参数的最大和默认值 1GB 可选

max_binlog_size=200M

设置不要复制的数据库 可选

binlog-ignore-db= 数据库名

设置需要复制的数据库,默认全部记录 可选

binlog-do-db=需要复制的主数据库名字

设置binlog格式 可选

binlog_format=STATEMENT
保存 my.ini 或 my.cnf
重启后台mysql 服务,使配置生效

查看主机的状态

show master status;
mysql 主从复制_第7张图片

注意

  1. 先搭建完主从复制,再创建数据库
  2. mysql主从复制起始时,从机不继承主机数据

从机配置文件

my.ini 或 my.cnf
[mysqld]

从机服务器唯一 ID 必须

启用中继日志 可选

relay-log=mysql-relay
重启mysql 服务
mysql 主从复制_第8张图片
查看从机的状态
show slave status;

主机:建立账户并授权

在主机mysql里执行授权主从复制的命令
#mysql 5.7
grant replication slave on . to ‘从机用户’@‘从机器数据库IP’   identified by ‘密码’;

mysql 8.0 取消 grant 授权同时创建用户了

create user ‘从机用户’@‘从机器数据库IP’ IDENTIFIED WITH mysql_native_password BY ‘password’;
grant replication slave on . to ‘从机用户’@‘从机器数据库IP’ ;
flush privileges;

从机: 配置需要复制的主机

在从机的mysql中执行
mysql 主从复制_第9张图片

change master to
master_host=‘主机的IP地址’,
master_user=‘主机用户名’,
master_password=‘主机用户名的密码’,
master_log_file=‘xxx-bin.具体数字’,
master_log_pos=具体值;
mysql 主从复制_第10张图片

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