暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql高级-3主从复制

枫卿杨 2020-06-12
220

MySQL主从复制(windows+Centos7进行主从复制)

复制的基本原理:slave会从master读取binlog来进行数据同步


MySQL复制过程分为三步:

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

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

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


复制的基本原则:

  1. 每个slave只有一个master

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

  3. 每个master可以有多个slave


复制的最大问题:延时



一主一从常见配置

这里首先要注意的问题时可以相互之间可以进行通信:ping +ip

如果ping不通,windows服务器可以参考以下这篇文章

https://www.inqingdao.cn/6120.html

1、mysql版本一致且后台以服务运行(两机之间,相互可以通信)

2、主从都配置在【mysqld】结点下,都是小写。

3、主机修改my.ini配置文件--

(1)【必须】主服务器唯一ID--server-id=1


(2)【必须】启用二进制日志

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

log-bin=D:/devSoft/MySQLServer.5.5/data/mysqlbin


(3)【可选】启用错误日志

log-err = 自己本地的路径/mysqlerr

log-err = D:/devSoft/MySQLServer5.5/data/mysqlerr


(4)【可选】根目录

basedir=“自己本地路径”

basedir=”D:/devSoft/MySQLServer5.5/”


(5)【可选】临时目录

tmpdir = “自己本地路径”

tmpdir = “D:/devSoft/MySQLServer5.5”


(6)【可选】数据目录(数据库的数据库)

datadir = “自己本地路径/Data”

datadir = “D:/devSoft/MySQLServer5.5/Data”


(7)read-only = 0

主机,读写都可以


(8)【可选】设置不要复制的数据库

binlog-ignore-db = mysql


(9)【可选】设置需要复制的数据库

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




从机在Linux环境下进行配置—my.cnf

配置两个

(1)【必须】从服务器唯一ID

首先将server-id = 1的用#注掉,然后再下方有一个server-id = 2的我们进行开启。

(2)【可选】启用二进制日志


再我们修改过配置文件,这里最好时将主机和从机都重启后台mysql服务


主机从机都关闭防火墙

windows手动关闭

Linux防火墙关闭  service iptables stop


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

授权命令:


GRANT REPLICATION SLAVE ON *.* TO ‘用户名’@‘从机数据库IP’ IDENTIFIED BY ‘密码’;


这里需要我们进入到windows的mysql目录下,通过mysql –u root –p进入到mysql当中,进行输入该命令


再进行刷新数据库状态

flush privileges;


查看master的状态

(1)show master status;

(2)记录下File和Position的值


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


开始配置Linux从机上配置需要复制的主机(可作为windows server2016服务器进行参考)


这里需要再mysql命令下进行配置,作为从机来进行接收

CHANGE MASTER TO MASTER_HOST=’主机ip’,

MASTER_USER=’授权用户名’,

MASTER_PASSWORD=’密码’,

MASTER_LOG_FILE=’mysqlbin.具体数字’,MASTER_LOG_POS=具体值;


然后再mysql命令行模式进行启动服务器复制功能:start slave;


这个时候,我们进行查看相应的参数--show slave shatus/G,看主从配置是否成功

Slave_IO_Running:Yes

Slave_SQL_Running:Yes


然后我们进行测试

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


最后通过stop slave;

进行停止服务复制功能


这里可能会出现的问题:

出现上述的错误以后,我们可以先停止同步,再做相应的配置。如果重新配的话,这里要重新输入show master status重新进行判断。


-----------------------------------------------------------------------------

学习来源:

https://www.bilibili.com/video/BV1KW411u7vy?p=1




文章转载自枫卿杨,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论