00:01
好,咱们动手去搭建买思库的主从复制啊,那既然是主从复制了,那肯定有一台主机,有一台从机啊,这块呢,呃,通过咱们搭建啊,这主从复制让从机去复制主机数据啊,这是咱们要实现的相关功能,那这块呢,咱们采用的SQ版本啊,这是最咱们最开始就说过MYSQL版本都是采用MYSQL8,那这块呢,哎,带着各位咱们去搭建一下MYSQL8的主存复制,那这块呢,哎,我需要准备两台主机啊,都已经安装好了,MYSQ数据库啊,主机相关的配置在这儿啊,它所在的主机就是它艾特硅谷零一,那还有另外一台什么的,呃,另外一台Linux主机啊,它是咱们从机啊,是艾特硅谷零二啊,这是啊,咱们把两个什么主机都准备好,而且MY思口都已经安装好了,哎,咱们需要首先第一个先去改咱们的MY思口相关的配置信息啊,咱们去修改一下它。
01:01
好,那首先啊,先去进到咱们的,呃,这个爱硅谷零一啊,咱们进到对下CD啊,再根幕下ETC目下,呃,咱们去V修改一下咱们的麦点CNF,哎,去打开买SQ的配置文键,咱们进行编辑,那这块呢,哎,这个编辑内容呢,咱们看一下课件啊,其实在这已经列出来了,首先第一个serve网横杠ID啊,咱们的主机的唯一ID啊,这块呢也是啊,咱们必须要指定一个唯一ID,得跟咱们的从机这个ID得得能区分开啊,创建一下它,然后呢,还有哎,启用二进制日志啊,直接设定一下咱们的log b啊,在后面指定相关的哎路径就好,咱们就用默认的就可以啊,默认的哎这个位置下啊,咱们就用这个MYSQ-B就可以好了,继续再往下啊,我还可以去设置,哎,不要复制的数据库是什么啊,可以复,诶可以把咱们。
02:01
不需要复制数据库全列出来,同样咱们可以采用另外一种方式,哎,我可以设置呢,呃,要复制的数据库是什么?咱们把这个数据库的名字哎给它填写上就可以,那在这块呢,还有最后一项啊,就是咱们设置下log b的格式啊,这块呢,咱们就默认的,哎,咱们sment这个格式就可以,好各位可以看到我这个对应的配置文件啊,已经改好了,咱们去确认一下,首先第一个啊,咱们的服务ID是一,然后呢,哎,这个对应的啊,开启二进制日志,当然咱们可以改这个相关的路径,改成你指定的目像也可以啊,不用它相对路径也可以的,然后之后呢,呃,设定下你要复制的数据库是什么啊,我这指定的是MYDB,各位提醒各位一下,咱们MYSQL之前带各位过过MYSQ主存复制的基本原理啊,咱们确认过哎,是从什么接入点开始复制,所以这块呢,哎,咱们设定的要复制的数据库一定确认在咱们对应。
03:02
的数据库下一定是咱们确认下没有那个数据库的啊,咱们搭好主层副值以后,现去创建这个MY思库数据库啊,我这个my d be啊,这个数据库现在是没有的啊,这块呢,各位一定要确认好之后,我设定它的这个复制格式,就是采用sment默认格式就可以好,这是啊,咱们的什么呢?主机的配置文件修改好,我保存出冒号啊WQ。好,这是啊,咱们主机的这个配置啊,带着各位咱们过了一下,还是提醒各位,为什么我要创建什么呢?哎,这个不需要先去创建数据库,咱们说了它是从接入点开始复制,我搭建好主从复制之后,呃,如果你在之前就创建好了数据库,诶咱们但凡往这个库里面插入一条记录,它会把这个隐私语句呃,存到咱们R进制日志里面,然后之后呢,复制到从新再执行的时候,哎,比如说我往这个麦d be1这个表里面插数据,我在这个master已经创建好了,那这块呢,哎,我创建好这个数据库,再去打主通复制,然后呢,这个插入数据的时候,隐私语句传到从机运行,诶就会直接报错了,因为什么呢?我只在主机创建了这个数据库,从机并没有重建啊,咱们哎在主机创建数据库的时候,主从还复制还没有搭建好,所以这块呢,各位切记切记啊,咱们什么的搭建主从复制的时候要复制数据库,一定要等主从复制都搭建好了,咱。
04:31
咱们再去创建啊,只有这样,哎,我创建数据库的语句也会写到blo日志里面,也会传到总机去执行,好,那继续再往下推荐,那咱们还得再给各位介绍一下啊,咱们的这个主从复制的这个b log跟日志啊,它的格式啊分三种,一种呢,就是咱们默认的sment啊,它的特点就是什么呢?诶,我会记录所有的写操作的S扣到咱们B冷文志里面,我复制的也是这个SCO到从击去执行这个S口就可以,但是它有个缺点啊,就是在我这个图里面写的这个S口,当你比如说往一个字段里面,哎,这个什么呢,进行写操作update相关信息,你放的是什么呢?咱们的一个函数。
05:16
啊,你通过这个函数获取当前系统时间,各位通过这儿啊,咱们复制过程中啊,咱们已经说了原理了,哎复制的过程中是有延时的,所以在咱们的哎这个主机我运行SQ,哎这个获取当前系统时间跟你在从机获取时间肯定不一样,就会造成什么是不是组从复制啊这个数据不一样这个问题,所以各位这是啊咱们sment哎默认格式它的一个缺点,那再后啊,你说老师能不能解决,当然可以啊,我要保证这个主层复制的数据严格一致,哎行不行,可以,咱们可以把这个格式啊改成肉行模式。行模式什么特点?就是我不再记录你的这个写操作的S了,哎,我只是做一件事儿啊,做什么呢?记录每一行的改变。
06:04
在这第几行啊,发生了啊,第几行哪个字段发生么?发生了什么变化,我会把它记住,然后呢,把这个相关的执行的每一行的变化,哎,复制到咱们的从击去进行一个执行,可以保证我这个主从复制数据是一致的,但是啊又出现但是了,对吧?哎有优点一定有缺点,它的缺点各位也很明显,因为我记录的是每一行的变化,比如说我要对一张表所有的哎time字段都要更新一下,全更新成什么呢?哎,这个当前的系统时间,各位,比如说我这张表里面有10万行数据。啊,那这块呢,我记录每一行的变化,我这块得记录10万条,那发到咱们统计也得执行10万次啊各位这块呢,诶应该能看出来它有存在效率问题啊,这块呢,虽然保证了数据的一致,但是存在效率问题,再往后啊第三种啊叫ma ED啊,这是在前两种,哎这个咱们的,哎这种格式都推出之后,哎,这是推出了第三种格式啊,第三种格式它会进行判断啊,这判断哎,你这个写操作的circleq里面有没有这些可疑的函数啊,如果没有这些函数的话,我就直接记录咱们的写操作的,诶这个circle口啊,如果说里面包含函数,我自动切到行模式,这种模式下来记录每一行的改变啊,这样保证咱们是主从复制的数据一致了,但有一个事儿,它也有覆盖不了,解决不了的问题,就是它两个艾字符加这个相应的字符串,这叫什么?哎,这是咱们的系统变量啊,如果你。
07:42
这circleq里面包含系统变量,咱们的ma ED也是识别不出来的,还会采用哎类似于sment这种格式记录咱们的circleq,那同样哎主机跟主机之间啊,它的系统变量可能也是不一样的啊,所以这块呢也会造成主从复制不一样啊,这块呢,咱们简单了解一下,哎,这个主从复制的三种格式啊,咱们了解一下就可以啊,这块咱们当然就选择默认的就好了啊,这是咱们的主机的啊相关的哎,这个主机相关的配置啊,咱们确认好,那下面该什么,是不是该去改从机的配置了?哎,咱们访问从机在这儿,哎,咱们的艾特硅谷零二直接CD进到咱们的ETC目录下,然后呢,VM啊,咱们去什么呢?修改一下诶,卖点CF。
08:33
好,进到这个幕像啊,咱们什么呢?切到这个编辑模式,然后之后呢,去改里面的这个配置项啊,咱们的从击配置项相对少一点啊,只需要什么呢?指定一下你的唯一ID,只要开启咱们另外一个日志really log就可以把这两项咱们添加到配置文件里面就可以了,添加好之后,哎,这两项添加好以后呢,咱们就保存退出就成EA退到咱们的这个一般模式下,完了冒号WQ保存退出啊,完成咱们的主机从机的呃,这个相关的配置文件的修改。
09:09
啊,修改好配置文件之后,哎,那这个时候啊,咱们修改配置文件想生效得做一个什么事儿,是不是重启主机重机的MY思Q服务对吧?哎,咱们重启一下,哎,直接运行咱们system啊system啊相关的什么命令。啊,相关的命令啊,直接restart。Restart,重启一下咱们的MYSQLD服务。哎,重启咱们主机服务,然后呢,再重启重机服务就好啊,怎么确认我这个服务重启完了啊,咱们直接在这儿,哎,是不是直接查看一下状态值就成了status。哎,直接查看状态就好啊,这个一抹翠绿啊,证明什么呢,已经重启完毕,那另外一台也是同样的操作,还是啊在这什么呢,重启相应的服务,哎,咱们我就直接不敲了,直接复制过来。
10:11
重启服务,然后之后呢,哎,咱们去什么呢?去查看一下状态啊,是否什么呢?哎,状态是否正确啊,是否是重启完毕了,咱们看一眼。啊,可以看到,哎,一摩翠绿啊这块呢,主机从机都已经重启完毕了,好,这是咱们什么呢?把这个主从啊,这个主从机啊相关的配置都配好,那之后还是提醒各位,呃,主机从机都要关闭防火墙,好,咱们需要在主机上创建一个账户啊,这个授权给咱们silver啊这说白了就是咱们再往上看啊,我的从机呢,哎,需要去读取主机的日志啊,但我主机不可能说是个人来,我就让你看我日志吧,哎,咱们需要做这么一个哎认证才可以啊,就我就是从击需要做一件事啊,需要什么呢?哎,在这个。
11:07
Master主机这块进行认证啊,确认我在主机这块是有用户的,然后之后呢,也不需要给他多大的权限啊,只需要能让他读取咱们b log日志就可以了啊,这时啊,咱们需要创建一个用户,好,那咱们动手创建一下用户。哎,直接在咱们主机上运行创建用户的,哎,相关的语句就好,哎直接运行就好了,创建一个user啊直接进到,哎,等会儿啊,我这个确认一下,我记得我呃在咱们主机这块应该已经创建了这个SLAVE1了,那我把这个用户我再新增一个,咱们再换一个,换一个用户啊这是SLAVE2啊给我这个SLAVE2进行一个相关的授权操作,然后呢,还得再说一下,底下这个语句也必须要执行,就是修改咱们的呃这个用户相关的密码,因为咱们的诶MYSQL8这块啊存在着咱的,呃,用之前create创建的这个用户呢,这个密码是有问题的,咱们须要进行一下,哎,再次更新啊,这是必须要做的,当然虽然虽然我这个密码都是一样的,但必须要执行这个语句,如果你不执行的话,咱们访问是会有问题的,好,那这块呢,呃,带着各位咱们去操作一下,直接复制咱们的命令啊,在我的主机啊,去创建一个。
12:25
新的用户啊SLAVE2创建完成,然后之后呢,哎,为了避免咱们访问问题啊,再去给他,诶修改一下这个相关的密码,执行一下就好,然后之后呢,诶再去给他完成个复制操作啊,不需要给他很大的权限,只需要给他什么呢?Slave啊咱们的从基的权限就好,哎直接在这儿咱们再次运行下。好,把我这个用户啊,这个什么的授权完成,但是咱们做了一系列操作,哎,这个还得做一件事,在这儿啊,进行一个刷新权限啊,这个相关的命令啊,直接刷新一下。
13:03
好,到此为止啊,咱们的这个用户创建完成,而且已经给他附好权限了,4652创建完成,好,那下面啊,咱们需要做的这种事啊,得去查看一下咱们主机的状态信息,就是它,哎show下咱们的哎,Master status啊查看一下咱们的主机状态啊,这是啊咱们必须要进行的操作运行项可以看到啊这块什么呢?哎,咱们的blo日志诶是谁?然后呢,它的接入点是什么啊,这块呢,之所以这块有相关的这些啊,哎,这个位置咱们一定要确认,是因为呃,咱们的MYSQL是从这个接入点往后啊去进行复制的啊,你只有在这儿完成了主从复制的对接,哎,我从接入点往后进行复制啊,之前呢,我不管啊,然后还有咱们的什么呢?可以复制的数据库,哎,不要复制的数据库这块呢,其实这两个配置项咱们选一个就成啊,选一个就可以实现。
14:03
咱们的主从复制啊,咱们把这些配置项明确之后呢,诶还得去做一些事儿啊,这咱们搭建主从复制得在从迹上执行这个命令啊,去创建这个主机的配置信息,咱们需要把这些信息添加上好直接把它复制到咱们的文本编辑器当中啊,修改一下啊,在这主机192.168.140,诶点100啊100,然后呢LEVEL2,然后呢,对应的什么密码123123啊具体的这个接入的blog日志文件啊,就是它。来,咱们复制一下。好,还有一个啊,咱们再去复制下这个接入点啊,这是咱们但凡把这个用户创建好以后,查看完状态以后呢,咱们的这个100啊这个什么呢,咱们的这个主机就不要做任何写操作了啊,不要做任何操作咱们什么的,呃,如果你做任何操作,咱们的这个在这复制一下它的这个接入点会发生变化,各位这块一定要注意好,那我把这个接入点在这。
15:18
粘过来啊,咱们直接把这个命令准备好,然后呢,再从击再去执行一把就好在这儿诶执行一下可以看到,哎,返回OK啊,这只是配置好了咱们的master哎,咱们的主机信息,但是真正想要什么呢?哎,想要咱们去什么呢?启动啊,咱们的这个相关的主从复制,还得再运行一个命令,就是底下这个命令啊,Start啊,Slave啊,开启从机相关的服务,也就是搭建好主从复制啊,咱们回车,诶起一下服务,那到底搭建好没有,咱们还得再执行个命令在这儿啊,查看一下从机状态。
16:00
而且这个冲击状态还比较多啊,哎,这个参数比较多,哎,如果用这个行的方式展现呢,会折行啊咱们哎,为了看着更好看一些啊,咱们用列的方式展现啊,这个反斜杠大写的G啊,咱们看下效果。好,咱们往上翻看一下这个关键参数,就是他俩一个叫silver IO running,一个叫silver circle running,只要这两个都是yes,那就是什么呢?诶搭建成功牛老师,那我这块不是yes怎么办?各位不是yes也不需要担心啊,咱们往下翻可以看到这是什么呢?有相关的error的一些什么字段啊,但凡你这个搭建有问题,它会在error若字段给咱们列出来,到底问题在哪儿,咱们确认解决就好啊这块呢,哎各位这块一定要注意啊,咱们什么呢?哎,这个借助这个输出的日志啊,它的属性项哎,就可以搭建好主从复制,哎两个都是yes思就可以了,好,咱们验证一下,哎怎么验证这个主从复制搭建好了呢?很简单,我在主机啊这个100这块我去什么呢?创建库,创建表,然后之后呢,诶,咱们到从机去看一看啊,看到底有没有完成。
17:17
主从复制相关的机制啊试吧,哎,直接创建一个库啊,就是create my d be,各位切记切记啊,咱们复制的是不是只有它对吧?哎,别的数据库咱们不复制啊,只复制麦DB创建一个数据库啊,直接在这运行下吧,诶在主机运行下建库的操作,直接创建麦DB啊,这个一啊,那同样咱们得切一下库啊,Use哎,切到咱们的麦DB1。卖DB啊,这个数据库里面,然后之后呢,创建表啊,建表语句我这块就准备好了,很简单就是哎,创建create table啊,咱们的my table这么一张表,指定一下ID是int类型,指定一下name是what char类型就可以啊,很简单创建一下咱们对应的来在这创建。
18:10
哎,创建这么一张表,然后之后呢,咱们往表里面插入条记录,很简单,Insert into,这张表value啊,这个对应的ID是一,然后呢,呃,后面字符串是张三啊,咱们试一下。好,这是咱们在这个,哎100这台什么的机器上啊,MYSQ咱们的第一个哎,MYS库主机上啊,去完成了这个创建库创建表插入数据,那咱们看一下,在咱们的这个对应的客户端工具应该也能看到相关信息啊,咱们刷新下。刷新一下各位看到,哎,MYDB1是不是我已经创建了对吧,邮箱的表my table打开各位可以看到,可以看到这个ID唯一name为张三,再到咱们从集看一看,刷新一下吧。
19:07
各位是不是有了my d be,有了再打开表,咱们可以看到my table表也有了,再打开。张三是不是也有了来完成咱们的主从复制的搭建?
我来说两句