00:00
接下来我们先在docker上快速的来创建一个MYSQL主从复制的这种集群,那这是MYSQL其他集群的一个基本方式,我们先来测试一下这个主存复制,这主存复制呢,我们来准备了这么几个命令,首先主从那就要得创建一个主码circleq和一个除码circle口。主码circle口的创建呢,可以使用这个我们叫docker run-P,那就暴露端口外部的3307,映射到我们马色口内部的3306,然后杠杆内我们来起一个名字,比如呢,我们就叫my circle master,这是我们的主码circle,然后呢,主码circle里边的一些配置数据内容,我们全部挂载到我们docker外边,挂载到我们虚拟机里边,我们就做好映射这一块,比如把log my里边的日志挂载到master下的log,然后呢,Li MySQL里边的这些运行时内容挂载到里边的data,以及MYSQ的这些配置挂载到master里边的con。
01:00
并且我们启动MYSQ的时候来指定MySQL root用户的默认密码,然后我们可以这么来启动,这是我们来创建一个master,好,我们先来创建出来,我们现在呢CD到我们的my data里边,我们来进入到MY里边,我们将来要在这个里边来创建出我们的master STEM,好,我们先来创建master,那创建master呢,会在master里边会有一个master文件夹,好我们先来回撤,现在我们这个容器呢,启动起来买doer PS,我们先来看一下doer PS的时候呢,我们发现了这个容器MYS5.7,好,它是mys master,暴露我们这个3307端口没问题,那么现在这个MY的这个master那就准备好了,那接下来我们先不修改my master的配置,然后呢,我们再来准备一个slave,好,还是这个命令slave单口呢是3317,然后呢,它叫SLAVE01,当然你可以准备非常多的slave,我们就以一个。
02:00
为例,然后呢,他们的这些数据也同样映射到s server这些文件夹下,好把这个CTRLC复制过来,我再来创建一个马色扣的从击走,无论是主马色扣还是从马色扣,都是一个独立的马色扣,好我们现在这个马色扣都准备好了,LL我们来看一下,那在这里边有master和slave,那这个master里边有它所有的配置数据内容等等。那接下来我们做的第一步,想要搭马的主从,那第一步我们先来创建了一主,再创建了一从,然后接下来我们来修改每一个人的配置,那先进我们的master里边LS,它的配置呢,在com里边,好,现在我们这个con里边呢,目前没有任何配置,我们可以来加一个们马的配置,那么可以使用我们这一块的命令,我们先来修改一下我们的这个马SL master里边的配置,把这一块呢,我来复制过来。因为这个配。
03:00
这呢是挂载到那一块的,只要我们修改完MYSQ容器,重新一启动配置呢就生效了,好,我们现在来修改,修改的是my data,我们的my my circle下边的master conf my conf,这是my circle的配置文件,叫my conf,默认的,好我们来修改,修改里边的,我们主要来给主码SQ里边填以下内容,首先这几个来改变我们这个字符编码的,我们都给它做成一个默认的,无论是客户端还是服务器都是使用UTF8编码,好我们在这儿准备好,然后呢,再来调整一下MYSQ的这个服务器内部的一些连接的编码等等,这是一些基本数据啊,这些基本数据呢,我们推荐买每一个MYSQL呢,都要这么来做好这些基本数据呢,做完以后我们再来配置主从,把两个的基本数据都在这做好,WQ这是第一个,然后第二个,第二个我们来修改一下s silverr里边的。Silver,好,Silver里边的my con走第二个,我们还是那一块的配置,我们直接粘贴过来,诶我们应该粘贴来的是所有的,把这一块的呢,我先来删掉,然后我们来把所有的这个配置呢全部粘贴过来,包含我们前面的这一块字符编码设置好client,我们把这几个呢全复制过来。
04:21
然后我们来粘贴到这,这是我们silver的基本配置,这些呢都一样,WQ,然后我们的silver也好,Master也好,我们的mycon就准备好了,但是呢,这个普通配置都准备好以后,接下来我们才来配主从,所以前面这一块呢,大家都全复制过去,那主从怎么配,我们先来配master master里边呢,第一个叫server ID,就是代表我们当前买S的一个服务器的ID,这个我们如果是主存环境下,每一个服务器的ID都应该是不一样的,所们server ID得配第二个主存的情况下呢,我们从是如何跟主同步的,是主里边只要我们对马S口有任何一条增删改,但查询不算增删改才是改变数据库里边的数据,只要有任何一个增删改,MYS狗都会记录一个日志,然后呢,我们从服务器可以把它所有的日志拿来,然后一个一个执行,那这样就同步起来了,执行到哪,它还。
05:21
可以记住从下一个呢再执行,这是我们说的同步,主要是利用日志同步,咱们现在呢得说一下MYSQ的这个log b,就是我们说的二进制日志,这个日志的名字叫什么?我们叫my circle b,哎,我们可以用默认的还有一个read on,零是不是只读的那零,那就是不是我们可以对日志里边有读写操作,如果我们数据库变了,我们这个日志呢也会变,然后呢,接下来有一个b log do DB这一块的意思就是我们是要为哪一个我们的数据表要生成它的这个blo,就是这个日志,你们现在MYSQL里边,我们这一个库里边有非常多种表,哪些表呢,后来要主从做同步的,比如我们这张表,我们这些表呢,要来生成,不对,我们现在呢是以库为单位的,所以我们要指定是哪一个数据库,它里边的所有这些增删改查都要来做好一个记录,咱以们在这来配置。
06:21
我们想要来记录我们数据库改变的这个二进制日志都是哪些数据库,U Ms spms so mssms以及CMS,那就是我们对应的这些,那么现在呢,多了一个这个WMS是op Su,我们现在的这个op Su op Su都有,现在呢还有一个WMS,好,这时呢,我们准备为这几个库呢,都产生二进制日志,现在他们只要有修改我们就来做,那主配置的这几个就是我们哪些库要产生二进制日志,下边呢,还有一些配置叫replicate,我们的ignore DB,相当于我们这个复制的时候忽略的这个数据库,这个数据库呢,我们看到myl system以及它的information performance这些玩意呢,都是每装一个MY,它里边自带的跟它本机这个特点特性设置相关的这几个数据库,这个倒不需要同步,因为每一个MYSQL有自己的设置。
07:21
要同步的是我们业务的这些表,我们来做的主从同步,当我们这个adin,我们也可以来给它加上一个同步,好,我们现在再来加一个我们的这个的in,那现在全部要生成b log的,那就是这几个,那我们忽略的表,那就是这几个,我们现在呢,在主满circleq里边,把它填上CTRLC来到我们的这个主码circlel p WD,那现在呢,这个配置文件是在master里边的,好,我们现在来修改一下,修改一下我的my config,我们为主满circle再来添加如下配置。同样是添的,在my circleql d这个MYSQL的下边好来填,现在呢,把这个都来填上以后。
08:08
我们的主满SQ就配置好了,主要是它的这个服务器要跟别人不一样,主满SQ产生的二进制日志叫满SQB好,然后呢,WQ来保存一下,那这个主码S配置好以后,接下来我们再来配置我们的silver my s就是它的从码S,从码除了这个基本信息我们都配过以外,还是剩下的这一堆信息从码SQL,它的server ID就必须跟主码SQ不一样,而且它的这个二进制日志叫MySQL be,然后呢,我们来调整从mys read on是一,那相当于我们这个呢,是一个只读模式,然后呢,这一块就是我们相当要同步的数据库,我们要同步主满circlel哪几个库,那现在呢,有这个up so,我们现在再来加上一个W,还有我们的呃的命,那现在呢,相当于要同步我们这几个数据库,那这几个数据库同步了以后,并且告诉从哪SQ这些呢,是不。
09:08
就要来同步的,包括我们的从码SQL也可以有从集去来同步它,所以我们现在呢,把这一块来复制上,这是我们从码S的配置。好,我们来到重满circle CD的my circle里边,我们这个my data my circle slave里边,来到它的conf ls,我们来VI一下我们的my conf来添上重满SQL的配置,主要是有它的服务器ID等等,这一堆服务器ID只要跟主满SQ不一样就行了,然后呢是我们的二进制日志,文件名呢都一样,我们叫mysq be,然后呢,只读模式,我们要同步的这几个库在这呢都准备好,然后呢,这几个是我们系统自己的东西,我们不去同步别人,别人也不用同步我们的,好们来WQ来保存一下,现在呢,我们的主满折扣和存满折扣,它的这个基本配置我都配好了,接下来我们需要把这两个满色扣来重启一下docker PS,我们来看。
10:07
运行的两个my circle,一个呢是我们的SLAVERY01,一个是master,把这两个呢重启一下docker restart,我们现在要重启的是两个,一个是my circle,我们的master,一个呢是my circle的我们这个SLAVE01走好,现在呢,我们看到我们my circle的这两个,我们现在呢都已经重启起来了,我们来召开们给大家看一下,好,3307主码S和3317我们都全部启动没问题,然后呢,接下来。我们要做的就是让从码circleq现在开始来同步我们主码circleq里边的数据,那这个同步要怎么做?就是我们现在要进行一个设置,首先我们的主码SQL得分配一个账号密码,想然就是从码SQ用的这个账号密码,从码SQ用这个账号密码连上主码SQ,把他的这个二进制日志拿过来以后,自己来进行同步,所以我们先呢连上我们的这个重码SQ,好,我们在这儿来,我点一个文件,我点新建连接,比如从码circleq呢,它是一个。
11:15
3307,诶,这是主码色扣,我们先来连上它,我们点个测试链接,好,我们先来连上这个主码色扣,我们这个就是这个码色扣没问题,然后还有一个我们的从码色扣,我们也来连上新连接,我们的这个从码色扣呢,是3317,这是我们的从码色扣,我就叫silver,我们在这来保存一下。我们新建一个配置就叫slave,这是我们的存码S扣的配置,存码S呢是192.16 8.56.10,密码呢还是root,只不过我们的这个端口是3317来,我们先来测试一下,连接好没问题,我们先连上silver保存,然后呢,我们再来连上MAS,把这个关了,我们重新来连一个MAS。
12:04
来专门来新建一个配置,就叫master,我们的主码呢,是还是我们的虚拟机。我们还是使用root用户,我们的主满circle呢是3307好,我们点测试连接没问题,我点连接好,现在呢,我们这个master和SILVER2个呢,我们都准备好了,那都准备好以后呢,先做第一步,在我们的master里边,我们来授权一个用户,让我们的这个silver能用这个账号密码去来连接master,我们来做的第一件事是在master里边来做一个授权,就来使用这句话grant,我们来给他授权,授权一个专门用来复制的replic slave on on,就是我们的任何主机,To,我们的账号叫bankup,在任何主机都行,然后identified by,你的密码是123456,现在我们授权了一个bankup 123456这个账号,它呢就是一个专门来做复制的这个账号,好来CTRLC,只有这个账号呢,拥有这个复制权限,好,我们现在在我们的master里边来运行这句话。
13:13
好,我们来点一个运行,现在我们这一块呢,Success运行成功,那这个运行成功,我们相当于那master里边就有一个授权用户,那这个授权用户有了以后,我们可以使用这句话叫受master status来看一下我们这个master的这个状态运行好master这个状态呢,我们看到现在是这个状态叫马SL be,相当于呢,是我们显示了我们master里边二进制日志的这个名叫s be,前面是我们定义的,然后它的二进制日志会自动分割现在呢,文件到00001,然后呢,分割下边,如果内容多了,就会零零零二一直往下position就是当前位置,然后呢,Blog to DB,我们能看到这blog To B DB就是我们。
14:01
要记录我们的这个日志的这些数据库,就是这几个数据库呢,要记录日志,还有我们这个blo ignore DB,就是它忽略的这个库,忽略的库呢,其实就是他自个儿这一块呢,也没显示好,现在呢,我们这个master就准备就绪了,Master里边呢,相当来做一件事情,就是在这创建一个授权,授权一个用户。那在这来授权,授权一个用户可以访问我们这个主节点进行日志复制,所以我们现在呢,授权的是一个专门来进行日志复制的这个用户,好,我们现在呢,这个我们就创建好了,那我们的这个主满circle,那们现在相当于就给从满circleq给他给了一个这个授权用户,那从满circleq以后得拿这个用户来连接,好现在我们这个主码SQL授权成功,那接下来我们再来改从码SQ的配置,从码SQ呢,我们还是进入MYSQL里边,我们现在都连接上了,然后呢,我们现在要使用这句话,就要趁指master to,就是改变我们的这个master去哪个节点,我们得指定我们master的这个host,然后还有我们这个master的这个user,我们用的账号以及用的密码,你看这个账号密码呢,是我们之前复制的,以及我们是追踪master的这个哪个。
15:23
进制日志,因为这个二进制日志呢,Master现在在my circle b0001,所以相当于我们是从这个日志开始,从这个日志的哪个位置开始,比如我们在这可以写一个位置,这个位置呢,相当于就是我们的这个主码circleq先日志到431这个位置,我们从这开始往下同步,当然我们在从马S呢,写个零也没啥,它会自动的从它上一次同步的这个位置再来往下同步,然后再来指定一下马的这个master这个端口在这呢,好像少了一个单引号,这个单引号来复制过来,想让我们使用这句话,好,我来准备一下这句话CRLC。
16:02
我们在这句话呢,在从masterl里边运行CTRLV,先看是这样change master to master host,就我们来改变master,这个master的主机地址是我们这个,然后呢,用的用户是bankup,然后用的密码是123456,因为这个用户密码呢,我们之前都用过,然后再来加上我们的这个master log file,我们现在的二进制日志的名字,看一下master它里边呢叫my circle being,五个零一个一,所以我们在这呢是circlel be这五个零一个一,然后接下来my circle日志的这个位置,这个位置呢我们不用记录精确的,那就用这个零,它会自动同步过来,然后我们这个master的端口号,我们主端口号呢是3307,没问题,那就这句话相当于告诉从满circle口你要去同步哪个主节点,所以相当于我们在这儿要做第二个配置,告诉从满折口要连接哪个主节点,那就是我们这句话。
17:01
这句话的作用来写一下,告诉从my circle口需要同步哪个主节点,好我们现在呢就告诉了,然后呢,我们接下来就使用这句话,我来ctrl a,我们在从满circleql里边,我来点一个执行,然后呢,我们看到1ACCESS成功,那现在呢,从满circleql就知道它连上哪个主满circleq了,那接下来我们就要让从满circleql同步主满circleql里边的数据怎么同步呢?我们可以来看一下,那现在呢,来启动上一个命令叫start slave,就是我们来开始同步,当我们不想同步了,就来stop slave就行了,好,我们来写一个stop slave,那这就是我们来开始同步,们来点击运行,现在我们这个e success,说明我们这个同步已经开始,同步开始了以后呢,我们可以来检查一下我们的这个状态,比如受我们的s slave statuss,来看一下我们当前这个slave节点的状态是什么样的。
18:01
好,我们来使用这个命令,走现在我们现在呢就来看到我们现在的状态呢,是waiting for master to send event,就来等待我们这个master给我们来发事件,像master现在还没变,我们现在无需同步,然后呢,接下来master的主机地址他也知道,我们用的是哪个用户他也知道,以及我们要同步哪块日志,日志的位置,诶我们看到自动呢改为431,我们之前master这是431,没问题,然后接下来其他所有的这些配置,我们在这呢都记录住了,主要来看这两个信息,一个叫s slave IO running和slave的circle running,这两个必须都是yes,说明我们的从节点正常运行,然后呢,我们忽略复制的数据库这一块呢还记录好了,然后接下来呢,它就可以来进行我们的同步工作,它还记录了一些其他各种信息,都在这儿,好,那么现在就来测试一下我们的储存同步,由于我们这个从呢会同步我们的业务数据库,那我随便来。
19:01
哎,把一个业务数据库的这个记录我来导出来,然后呢,我在这个master里边给它导进去,好比如我们这个呢,是OMS的circle来放到桌面,OMS这个呢,是我们需要同步的来点一个导出。我们来到这个master里边,我们现在呢,什么表都没创建。看silver里边,我们先来看silver silver里边呢是新的,Master里边呢,现在也是新的,们给master里边创建一张我们的业务表,我们在这个业务表的记录呢,我已经弄出来了,好,我们把它导进去,来到我们这个master里边来ctrl a来直接运行我们的这个代码,好,我们现在看到在我们这个主库里边,我们这块创建表的代码执行成功,我们来刷新一下,我们现在有了这个鼓力妙订单,这个这个库,我们库里边呢,也有这张表,表里边的这个记录也都是在的来打开。这个订单表里边,我们来看一下我们之前的这个记录,是不是没导出数据,行,那现在呢,我们这一块呢就准备好了,然后呢,我们来看lili呢,原来是空的,我来刷新一下,诶我们发现它创建了一个古力mail OMS,说明呢它有这个表了,然后表里面的结构呢,都是跟我们主库同步的,所以这是我们的主从同步没问题,包括如果我们给表里边来插入数据。
20:21
我们来测试上一条,比如我们就给这个MQ这张表里边MQ呢,它的这个ID,比如我来写一个1CONTENT内容啊,我来不写了,我们随便来写上一些数据,好,我们来点一个保存,那我们这个主库里边,现在的my MQ message这张表里边有数据来看存库,存库呢,我们来到他的这个MQ message里边,我们来把它打开来,我们发现从库也把这条数据同步上来了,只要我们主库有任何修改,DD我改成再来加上两个CC来点一个保存,主库有任何修改,我们这个存库呢,刷新它呢,都能同步过来,这是我们说的主从同步的效果。
21:01
整个同主从同步说起来呢,就两件事情,第一件事情就是我们这个MYS狗主库要开启他的这个日志,然后给从库再来分配一个账号权限,第二件事情就是从户使用他的这个账号权限连上主库,把这个日志拿来进行同步就行了。这是我们所有马想要做集群里边的最基本的形式,一个主从复制同步。
我来说两句