00:00
好,同学们,我们接着聊上一讲,我们对高级篇的一些相关知识做了一下说明,那么现在我们正式进入我们的第一章do卡容器下面的复杂安装说明,那什么意思呢?下一讲我们对do上的常规安装啊,就是基于容器的单机版的装个timeca my步骤以及各种配置细节和各种坑都给大家做了一下说明,那么搁到这儿,你假设现在呢,自娱自乐自嗨,自己的微服务连到容单机容器上的这些中间件上面做一些相应的开发,这是没有任何问题了,那么几乎到这儿应该是入门了,但是呢。面对着大产更高的要求,以直面面对着未来的趋势,哎,我们都说过这句话,你今天的优势会被明天的趋势所取代,一句话,一切在云端,K8S啊,DOS这样容器化的技术你是逃不了的。那么对于我们一些复杂配置安装,也需要在容器下面给大家进行进一步的深入的讲解和说明,那么来看两个案例。
01:01
第一个。先说第一个安装MYSQL的主从复制啊,那么大家呢都晓得。我们在MYSQL里面绝对不可能用单机的啊,你在生产上,在日常工作中,不要说是大厂,就是中产小产,只要你们是一些核心业务最经典的配置啊,易主易从嘛,对吧?啊,也不用从积太多,因为它有一个主从的这个不同步,你从基跟太多跟不上也是导致数据出错,所以说基本上呢。默认我去调研以后,大家常用的都是一主一槽啊,一般中小厂不大可能出现主机和从机都同时坏了啊,什么机房失火呀,电线被老鼠咬了对吧等等等等,咱咱们那些不扯那么所以说我们有必要了解一下基于容器化技术,多卡下安装MYSQ的一主一头来。兄弟们。搁到这儿,首先主从复制的原理,由于到高级篇原理这个东西怎么着,默认你懂,为什么?因为在上硅谷的高阶学习部分啊,买Q高级这个课程讲过,那不说别的,就是2016年我就讲买SQ高级了。
02:05
详细的讲过MYSQL主从复制的原理,那blog也就是我们的二进制日志,或者也叫归档日志和中继日志,双方的互相读写啊,这些原理不废话了,那么有兴趣的同学可以去看一下,那么我们直接本次的重点干嘛?是不是主要就是doer,所以说主要是给大家演示在do容器化技术的框架下,如何把我们原来的主动配置在。打下再搭建一次来看看方不方便,那么中间有哪些坑同学们需要注意,好,那么同学们再次啰嗦强调一句,请务必一定要动手啊,不用了。说。这个杨哥,呃,感谢你提供的帮助,什么什么的不用了。动手,那么希望大家呢,我都清楚,我把脑图给你,你就是粘你都不能粘成功,但是你不动手,神仙也教不了你,OK,好,那么同学们。来。主从复制啊B啊,一主一层,那么大家请看。
03:03
3307什么主服务器,3308什么从服务器好,那么相当于说最终的需求就是3307插入一条,那么基本上3308能够收到一条,完成了这个主通复制,那么来吧,我们来看看基于我们的dota。我们呢,如何来完成我们的主从复制相关的操作,第一步,请大家看一下我们的命令。由于前面已经都讲过这样类似的命令,我先不讲,给大家十秒钟,我暂停一下录屏,先看一下这是说的是什么,同学们。Run。小P3307映射到3306这边宿主机这边doer里面MYCQ真真正正跑起来的容器内部的端口好。容器实力的名字啊,Myq master3个V挂了三个,我们前面讲过杠V是什么意思啊,对吧?容器数据卷,经典的基本上都是这三个套路啊,日志啊,数据配置啊,那么根据我们的前面的讲解,是不是在宿主机上对配置文件的修改可以同步进我们的MySQL do dota容器实例啊,那么杠一是环境。
04:13
Root用户的密码是root,那么版本MYSQL5.7,所以说兄弟们不废话,那么第一波我们呢,先直接执行这个命令,那按照我们的。规范配置和原则说过肌肉记忆一定乱了,以后一定先直线下do PS,看看这个up有没有起来对应的。我们的映射正么正确3307映射3306如果能看到这儿,且看到我们自定义的别名,证明MY斯master成功启动,第一步完成走,那么接下来第二步同学们请看。进入。My date my master目录下新建卖点CNF,就是MY的配置文件,前面讲过了,日志啊,数据看复一定是我们用宿主机的就可以来影响我们容器内部的,OK,不多废话,咱们命令呢就是它,对吧,咱们图个省事吧,咱们把这个呢目录粘下来。
05:07
那么CD。搁到这儿,那么来兄弟们,这个下面是不是什么都没有啊,那么目前我们的第二步是要在当前路径下面做一个。能够影响多卡容器实力,内部的MYSQL的配置好么?搁到这儿了以后vim my点看,那么内容呢,是哪一些呢?就这些我们先给它粘过来,这个你不要去写啊,杨哥都给你写好了,你直接粘贴就行了,那么来。特别容易写错啊,慢一点,配置类的东西我们呢直接手工粘贴就行了,像什么application点。XL啊,什么泡沫啊,亚M那些配置文件啊,那么同学们那么这卖点CNF那么直接。我们呢,插入OK,那么先保存退出,让它重新显示了以后,我们再来大概说一下,首先买CQD。OK,那么对于我们的卖点,Com这个配置文件相当于给它加了配置啊,那么第二个。
06:07
Server ID 101同一局域网中需要唯一,那么代表101SERVER ID,那么你一定要定义一个什么主机吧,对吧?然后呢,指定不需要同步的数据库的名称,那么忽略的,那么假设叫MYSQL,因为我们MYSQL刚刚安装完了以后,是不是有一个MYSQL库啊,这个我们不需要啊,这是它系统默认出厂自带的,我们用不着。那么第二个开启日志功能,那么log病,那就是我们的b log,然后呢。每一行都给大家做了一个详细的说明,日志使用的大小,然后呢,我们的混合日志啊,是混合型的还是对的,还是肉型的,那么来过里。清理的日志,因为b log日志太多的话,我们呢,也设定一个,比如说七天的话给它清理,那么这个呢,是跳过主从复制中遇到了一些错误啊,那么避免被复制中断。那么这个时候主要是1062和1032啊,那么这个呢,不能错过啊,你了解就行,但是一些什么主键重复的,我们可以给它跳过,适当的来增加我们的容错性,好,那么同学们这个呢。
07:05
保存退出啊,我们完成了,我们。主机下面相关的配置,OK,好,那么再次强调我们强调过啊。小细节和规矩,良好的工程经验,你在宿主机上通过容器卷改了我们的配置,传导给我们刀卡内部的容器,我们是要重启的,听懂了吧,但是我们还没改完,后面我们再重启,我们只是这提醒一下大家好,那么来。修改完配置以后重启master实例,你看没问题吧,所以说兄弟们直接过来。来。OK myq。Master,注意不废话,一定要亲自看到这个名字啊,且这是up,那么能够重启说明我们的配置文件啊,各方面对吧,语法上应该没有什么太大的错误,好,那么有问题后面我们再说啊,因为这个配的话呢,我们呢要一步一步非常小心,那么第四步进入MySQL master容器,那么干什么呢?
08:03
进来了以后,我们来来看看能不能登录成功哈,那么现在。Do PS的,那么do ex ec-I,那么这个时候是不是就是我们的my master主机?那么。病。Bash。MY。Root。干屁。Root。Show data。贝,那么来,我们前面强调过,MYSQ默认了以后,它是不是带着一些库啊,这个MYSQL库我们刚才是不是说过。怎么着?不需要同步的数据库名称啊,哎,这些呢,不是我们的好,那么这样呢,提一嘴,那么进来了以后我们要干嘛?MYSQLMYSQL的master主机上容器实例内创建数据的同步用户,那么来看看我们的命令,这个以前我们也讲过,对吧,我们创建一个用户啊,叫slave同机,那么因为啊,我们现在要做的是什么?主从复制啊,那你主从复制的话,我主机上的数据,你不可能说外面随便来个人就来掏吧,那所以说我是不是要授权,我要建立一个什么可信任的用户,那么我们这儿干的活就说。
09:11
现在创建个用户莱瓦,然后呢,可以用123456来登录我这个主机,给你授予这些权限来拿到对应的数据啊,这个呢是MYSQL安全加固的一个意思啊,那么你不能说哪一个人。就可以把我主机上买S的数据给透偷走,好这是第一步,那么第二步。是什么授权?那么说穿了,第一步就是建立一个用户,第二步是给这个用户授一下权限,那么你可以做哪些?相应的读写操作好,那么这个呢,是我们的第五步,那么第五步完成以后,暂时主机3307暂告一段落么?接下来请看一下我们的第六步,新建重服务器3308好命令和刚才的差不多,端口变成3308,追加映射3306,名字叫slave。
10:04
OK,三个V。OK,不废话,那么这个呢,一看就应该明白,那么来吧。搁到我们的。同机这边老规矩,肌肉季节只要转了马上PS1定要看到up,且我们对应的别名或者我们的container ID,好,那么这个时候我们的第六步完成,那么下面请看第七步,大家请看还是熟悉的配方,还是熟悉的味道,这么说能跟上,那么我们进到我们的这个com复目录下面,那么你也晓得的干嘛,是不是VM卖点com复对应的操作,那么现在。CD。过来吧,那么大家请看,现在下面什么都没有吧,VM卖点CNF这一波没问题吧,那么卖点cnf vim.cf不要配错,那么和刚才一样,老规矩,先给它拷贝,然后呢,我们呢直接。
11:03
粘贴,那么这些复杂的你不要自己去写啊,你张杨哥的老图就行了,那么来兄弟们大致讲解一下。同样的,还是给SQL服务端后端来配置相应的设置搜把ID主动复制0101是主机,102默认就是同机,绝对不允许。重复啊,这个会出错的,千万不要那个糊涂了,那么。不需要同步的是哪一个,那么这儿开启二进制功能,事物的大小和之前差不多,去掉601062的主从复制的这个主键复制的错误,那么来。这什么同计是不是有个东西叫中继日志啊,哎,这个呢,原来在讲原理时候讲过。那么呢,写精子的二进日志啊,那么默认什么只是读写,把master最严严,稍微权限放的严格一点,那么read only,我们要把它打开,设置同机只能为读,OK,好,那么兄弟们,如果没什么问题,这一波搞定。
12:01
那么现在呢,我们呢,也已经完成了我们的第七步,那么接下来我们呢。第八步,修改完配置后重启slave实例对吧,那么要把我们的这个也要重启一下。朋友们啊,这个是莱这边的,那么老规矩doer PS,我们大家请看。两秒钟之前刚刚重启的,那么说明我们的配置应该是OK的。好,那么在主。数据库中查看主从同步的状态,那么这个时候请看show master status。来吧,那么弟兄们回到我们的主,现在注意啊,这个主的话,我是在主机的MYCQL容器实例内部,那么我现在执行这条CQL,那么大家请看我们的blog日志啊,因为我们一般是不是做那个电商商城嘛,对吧,那么my blog及啊,00012POSITION617啊,那么它呢,忽略不要去迁移复制哪个库是马色Q那个等等等等,那么说明我们的文件名和我们的一个刻度。对吧,从617这个呢开始往后读,往后写好,那么这个呢,是我们的第九步,那么第十步进到我们的my slave的容器里面,那么和刚才的一回事,那么来,同学们。
13:14
Do塔exec-it谁呀?我们现在去的是同基,那么来到同级以后进去。来MY。Root。干屁root OK,那么现在成功进入了我们的什么MY容器实例里面,是do上面的啊,那么好,第十步完成,那么兄弟们。在第11步在谁你看啊,十一十二十三都是谁从从从千万不要搞错啊,每一步都要小心在从数据库中配置什么主从复制啊,那么来弟兄们怎么配置呢?公式如下,我现在是不是进入到了我的从。服务器。那么我要change master to master什么什么概念,因为现在啊,左边这个是主,右边这个是从,我们两个是各自独立的,我没有拜拜码头,没有认认老大的,我这个叫只是杨哥自己人为的定义,人家还没服软呢,怎么服软?
14:15
Change master to master host告诉你,从现在给你找了个老大,那么这个老大的宿主机IP是多少,那么具体你自己是多少就是多少,OK,那么根据你过去拜老大的话,要有个价铁吧,那么这个时候老大刚才做了个权限认证,你呢叫莱吧用户是密码呢,123456,那么端口是去访问3307,我们强调过吗?零七是主,零八是master,那么然后大家请看。在这款more my CQ b001MYCQB001ok吧,617,然后呢,Master的连接重试等等,配置一个30,这个没问题,那么现在。主从复制的命令参数说明,那么这块我们弟兄们怎么着都给大家呢,安排的明明白白清楚了吧,为什么我们前面要先执在主机上执行一下,这个主要是拿到这个刻度,这个非常非常的重要,那么弟兄们你们对应着主机站端口,用户名,密码文件,然后呢,从哪个位置开始,然后呢,失败重置时间间隔30秒钟,OK,应该是给你说的明明白白的吧,那么注意主数据库的IP,那么现在呢,我们呢搁到这儿。
15:27
兄弟们,我们呢,直接。If是多少就是多少,OK吧,那么大家请看,呃,找1S33,我现在是不是111.167这台机器这台IP好吗?那么来了。搁到这儿,同学们请看,那么现在呢,注意我在哪,在从数据库中配置主从复制好,那么从数据库中这一段给它粘过来,那么。我们接下来呢,为了避免啊,先提前改好啊,别到时候它执行出错,那么我们的IP就是192.168.111.167 OK,那么在这块的话呢,我们呢,192.11168.11.167没有任何问题,那么。
16:11
直接拿过来在我们的同期这OK,那么在同期这执行这一大段配置。OK,好,那么同学们,我们的第11步完成,那么接下来请看第12步,在从数据库中查看主从同步的状态,那么我们现在只是拜了码头,那么有没有进行数据的传输呢?哎,这个呢,只是大家见了个面,认识了,但是还没有实际的交易呢,那么现在请看我们的第12步。来show,注意我这写了两种方法啊,故意的show master status,这个叫show status诶。能理解这个是什么。他们两种的不同的读取格式啊,我故意给同学们写到这,都给同学们看一眼,那么以前我这写了以后,大家请看是不是从左到右横着的抽练一张表格,那么现在如果我像这样呢,干个G呢,就是竖着的相当于一个什么KV键值,对这么说能跟上,那么大家请看啊,这个参数你可加可不加。
17:11
加了的话就会是这种形式,像哈希map一样,KVKVKV,左是K,右是V,好,那么现在怎么着?我们主要查看主从的同步状态,主要是看什么呀?来兄弟们主要是看。同记的IO running circle running nono说明什么还没开始呢,因为主机上都还没给他写过任何东西嘛,对吧,那么所以说在这,那么同学们从笔记到我们的对应的实例配置,Nono说明还没开始,好,那么第12步完成,那么兄弟们。继续第13步,在同数据库中开启主从同步,哎,第一个。那边的老大要给我创建用户,允许我过去可以去取给我授权,第二步我自己要同意去什么接收,所以说在这在同数据库中开启主从同步start slave OK,那么确定哥们实锤了,你呢?
18:08
就是我们的什么从数据库了,Start。OK,那么来搞定,那么开始呢,同意接收,那么第14步查看从数据库状态有没有发生同步,那么来start以后收还是这个,如果在这前面的两个no no变成。Yes yes,那么说明什么?链路打通,那么万事俱备,只欠东风,那么来同学们,如果不出意外,那么兄弟们,这是不是两个yes yes OK,那么切记啊,没有执行这个命令之前,前面我们的是什么?两个nono?OK,那么执行完了以后,这块变成变成了两个yes yes好了,那么第14步完成么?接下来主从复制测试,那么主机新建库,使用库新建表,查数据,OK,那么同机使用库查看记录,同机主要是读嘛,好了,那么现在呢,弟兄们。
19:07
完成这个以后,对吧,我create date。Base啊,那么DB。呃,零线。OK吧,Use db01ok吧,那么现在。Table那么假设T这张表,那么我要干了一个什么呢?ID name。挖岔。那么来。兄弟们。这波OK吧,那么insert into t values,那么这一张三。OK,那么select。我们直接过来T1这张表,那么在我们左边主机这台机器一号记录张三完全成功,OK,那么接下来不废话,重要的是从机,那么主从复制主机有了,从机能不能顺利的迅捷的读取出来,那么老规矩,刚才的从机是什么都没有,那么如果说你现在主机已经有了,那我是不是也要是先使用这个括那来执行一下use的DB01。
20:14
兄弟们。这么说能跟上这个没问题啊,你看database前面是一个警告,不用管它database change记说明我已经用了这个,什么DB01都不用收table,直接select新from t机兄弟们有没有OK,那么大家请看这个时候是不是就完成了我们的主酮复制啊?哎,所以说这个呢,就是我们对应的从容器这个角度完成了我们的一主一从的MYSQL主从搭配,这个在生产中是实际要用到的,那么请同学们务必掌握好这个案例就讲到这儿,大家动手练习一下。
我来说两句