00:01
大家好,欢迎大家继续收看上硅谷的Linux云算视频,我是刘川老师。那么我们本节课呢,来讲一下关于MYSQL当中的一个中间键啊,叫阿密码阿密码。那关于MY中间件,其实不光这个啊,有很多啊,还有什么阿里的my cat呀之类的有很多,但是呢,他们绝大多数提供的功能都差不许多,那这个地方我们拿俺们的R密码来讲,后续如果说有需求的话,可以去尝试着安装一下其他的中间键啊,以及了解一下其他中间件一些特性,OK。那专家将简单来说一下,专家建的一个定义和作用啊,一种提供在不同技术不同软件之间共享资源的程序,更大化的利用了数据库的一个性能啊,可以啊。无限扩展,当然这个真实环境中不可能无限扩展啊,这个不用想那。数据库的中间页有这么几个,一个是官方的这个my proxy啊,性能呢比较差一点啊,需要罗下脚本,但是呢,其实有很多的这个大公司,你像360啊之类的,呃什么。
01:04
腾讯啊,阿里啊之类的这个公司,他们其实很多都是拿这个官方自带的这个官方的这个中间线进行了一个二次开发,然后形成了自己的这么一个,呃,适合自己业务和生产线的这么一个这种中间件工具啊。OK。然后呢,阿米巴是这个陈思如研发的这么一个中间件,OK。好吧,简单做个了解就行了啊。这个关于中间这个啊,密码中间线的功能,我给大家说一下啊OK。首先呢,这个中间件呢,这个一般我们是单独搭建在一个独立的服务器上。然后呢,它的主要作用呢,是调度我们的搭建好的主从服务器,或者是主从从服务器,那它这个所谓的调度是怎么调度法呢?这个啊密码服务器呢,你可以理解为它是一个。反向代理服务器所有的这种啊。对数据库的就是读和写的压力,然后读和写的请求都会请求到中间键上,然后由中间键将我们的数据库的读写请求分配给主服务器和从服务器。大家都知道,做主从的话,只有主服务器能进行数据更新,从是不能更新的,因为从的数据是来自于主。
02:19
但是从服务器又不又不能闲着,闲着很浪费资源怎么办?那我们就这样,主服务器既能写也能读,而从服务器只能读。那这样呢,首先就实现了一个目的,那就是什么?那就是我们让我们的中间线实现了一个负载均衡,独的负载均衡,其次呢,让我们的中间线控制了。读和写的这么一个操作,只能往主上写,不能往从上写啊,只能往主上写,不能往从上写,那如果再严格一点的话,那就是主呼吸只进行写而不进行读,那中间键控制着读的时候只是往从上读。还能实现读写分离的效果啊,还能实现读写分离的效果,那其实很多时候我们可以搭建的时候,可以搭建成主从从的模式,主从从。
03:07
然后呢啊,密码控制着写操作往主上写,但是读取操作。从两个重复向读取。啊,这就是典型的读写分离和负载均衡的模型了啊。OK,那这就是我们讲的阿米巴特的一个功能,它一个功能。然后呢,我们要这个做这个实验呢,就需要先实现一个主从货主从从那这个为了这个方便实现啊,我们这个,呃,这个。训鸡的数量不宜太多。比较卡,那么就三台服务器,一台做MB,把服务器做调度服务器,另外两台做一个主从就可以了,那么做一个主从可以了,那这个搭建主从我们已经很轻车熟路了。把这个主从搭建一遍,把主从搭建一遍,我去恢复一下我们的虚拟机。
04:12
好,那这样的话,我们这个一号机就是幺零机器做我们的密瓦服务器,二三号机分别做主和从就可以了啊。一号机连接上。他拿来做我们的阿米吧。二号我们也连上。他来做我们的主服务器。三号井没连上。他来做我们的重复器。让他。首先呢,我们先把这个主从搭建好。
05:39
OK,我们先来修改一下配置文件。
06:06
三菱机器修改配置文件。然后呢,去设置一下MY的开机自启以及启动一下。二号机。搞定。二号机登陆到MYSQ之后授权。
07:03
Grant。Replication slave。Two。At。192.168.88.30。授权三零能连接你。BY。Master。Status。Change。Fast。Master two。
08:03
Master user等于。Master g。Pass。Master。Host。192.168.88.20。Master g log g。Fire。My circle。123453。Master。杠log-position。
09:03
等于。Start。尝试一下。CREATE。这个地方啥?我们测试的时候呢,我们找一个单独的数据库进行测试,假如说这个数据库的话就叫艾硅谷,那我们就create一个data data。At。然后呢,我们往这个数据库里边这。创建一个。
10:02
YJS表。然后YJS表的字段。ID。有name。Age。然后并且往里插点儿数据。比如说。往这个叫YJS的表里插入点。三个字段一。
11:06
再插一个。然后这个时候呢,我们来直接查看一下select。Select。From at硅谷的库的。YJS表。直接唱。然后呢,这边插一下。From。At硅谷点。
12:00
YS。但现在我把这个从停掉。停掉,从之后呢,我去删除其中一条记录。Delete。Delete。他们去有什么呢?再加一条呗,别累他,再加一条。Insert。Into。然后这个表叫YJS。At硅谷的。PS。往这个里边儿。添加值。他已经有两条了,又再来一条三逗号。
13:07
X。又加一条。他来查是三条。煮的时候插的时候是只有两条。因为我停掉了主从,所以说造成了主从的不一致啊,造成了主从不一致,这是我们刻意为致的啊,真正的这个生态环境中不可能让主从不一致的,那要不然就保数据不一致了,对吧,这个我们是为了实验,为了让这个我们。后期把阿米把搭建起来之后,能够从。啊米把看到我们的两个服务器上所调用出来的数据是不一致的啊,是为了这个。OK,那我们这个主从已经搭建完了,我们啊去把这个呃。啊,密码搭建一下啊把。配置这个阿米法对分离要先安装GCC啊,要先安装GCC。
14:01
然后呢,这个RGC呢,主要是因为R密码是一个我们的这种。源码软件安装,所以说要编译安装啊OK。一号机啊。的数据,我们一号机。先用亚么?杠y install一下我们的GCC。然后呢,我们去。干什么,导入一下我们的这个。导入一下我们的这个软件包。一下。
15:05
稍等一下,等他装完之后呢,我们把阿米把解压并安装一下,我们先来看一下这个流程啊,先来看一下流程。安装完了之后,拷贝第三方的软件到里边之后,我们复制一下,然后呢,嗯,先去再跟下创建一个叫根下的啊密码的目录啊。然后呢,这个创建完M密码目录之后,我们要先安装GDK,这个把我们的这个GDK解压缩之后,放到这个叫R密码的目录下啊,这个又看到GDK了,也就是说我们这个R密码是需要Java环境来支持的,否则是不能够执行的啊,这个还是比较好理解的啊,比较好理解的。然后呢,将这个JDK的目录解压到这个M密码之下呢,然后呢,把这个GDK的目录链接一下,链接一下就链接到本本目录下就可以了,然后呢,主要是去掉版本号,其实这个很简单,我们做的时候,我们完全可以直接把GDK解缩,然后把这个目录复制到user local下,然后去掉版本号也行啊,这个都行。
16:04
然后呢,声明Java写这个写出来的这个程序如何调用,就是声明环境变量这个地方呢,要写这么几个东西,一个是Java home,一个是pass环境变量,一个是class pass。那这个呢,直接写入到我们的这个。这个这个这个外线pro线ETC的pro绕线就可以了啊。这是我们要这个声明的还原变量,然后SS加载一下,然后就再一个就是看一下这个Java的版本就可以了,剩下的就是安装了啊,剩下就是安装。我们来操作一下啊。并且也已经这个上传上来了,我们。按zip下。然后呢,MKD跟下的AMOBA。再跟下创建一下。CD的这个。阿米阿巴阿米巴下,然后呢,检验一下我们的GDK啊。
17:02
杠XF以下7DK。然后我们也不用说复制过去链接了啊,直接就这个把这个目录复制一下,然后复制到那个目录下。改名叫GDK就可以了啊,CP-A一下,把我们的。GDK。1.7这个复制到根下的阿米巴下,改名叫JDK就完事。方便啊,也不用说什么做什么链接之类的。然后呢,我们去修改一下我们ETC下的那个叫。Profile的文件。在这个文件里边,我们需要设置一些。Java我们的这个。啊,米八的一些黄金变量。来看下这些画面料都有什么东西啊?Java home。
18:04
更是下回先港。等于。根线的啊咪把下的GDK。然后呢,是用export声明一下,直接拿export就行了,Ex。然后继续下一个还是用块成品。PA在原来的P环境变量之下,把这个Java home点进去就可以了。Po。A等于。弹一下格式啊。Dollar扎home下的并母。Dollar。下的。并。
19:00
叠加到。原来的。这个P。然后再就是。Class path。比较麻烦一点啊。点冒号,然后Java home并线的托奥斯炸。第二,冒号。Dollar。Home下的。下的。并下的tool长。还缺一个。
20:06
嗯,到了Java后,现在立不下的DT点渣。Dollar。Li下的。DT点。再叠加上我们的原来自带,原来就有的到了。一下ETC下的。然后呢,拿Java-version测试一下。再提醒一下啊。杠version。不是尴尬啊。没有问题。
21:00
好了,接下来是安装我们的阿密瓦,把阿米瓦解压一下,怎么解压呢?解压的时候用钢地指定解压到uz老考阿密瓦下就可以了。UZP。地根下user local a Mo EBA。成功之后呢?为了让M18能够正常执行,我们需要给一八的那个目录下的可执行文件赋予一些X权限。否则是。深圳mod加X给。并一下的。然后呢,配置MR这个软件,配置软件就是修改配置文件。
22:00
它的配置文件在comf下叫阿咪八点叉ML。打开这个叉ML文件之后呢,我们先修改它的server区域,就服务器区域。在服务器区域确定了谁能够连接它。啊,谁能联系他,我们需要修改这么几个地方,一个叫什么呢?一个叫name啊。啊,不是内网port端口连接它使用的端口以及IP address啊。他绑定的这个IP地址啊。8066就可以了,默认就可以了,这个IP address这个啊,你看它这边有个注释。它的注释呢,是尖括号感叹号杠杠和杠杠感叹杠杠号。这是它的注释方式,和我们以往的井号呀,双斜杠呀,呃,分号呀都不太一样啊,这是一种独特的注释方式啊,我们先把这个注释删掉。然后找到这个IP address,他默认只监听自己的本机回环,那不行,你需要监听自己的本机网卡192.16。八点八八点。
23:01
幺零。然后呢,再往下找,找一个。登录啊密码时用的账号和密码。本来默认是用用root啊,和管理员没有关系,这个root,但是我们可以改一改,也可以用root都行啊。这个我们先找一找。默是用的是root,为了这个不和我们系统root起这个歧义啊,所以我们一般把这个地方改一下,比如改成。AMOEP。密码应该他的密码也被取,也被那个注射掉了,所以说密码这个也给他取消注释找后密码这个位置给他设置一个密码,比如说密码叫123456。好了,Server区域的内容,我们就已经给他这个设置完了,设置完了。然后呢,下边这个不需要管,然后接下来需要修改的是什么,是DB server list这个区啊D。
24:08
DB server类似的这个区,DBSO类似这个区非常大啊,非常大。那里边儿需要修改内容比较多,那其中呢,有一个叫DB server的区域。那DB server区域,在DB server区域里边需要修改的内容非常多,那我来给大家解释一下关于这个。DB,这个区里面都是什么东西?我们先来看一下这张图。OK,那我们接着来看一下这张图啊。那这个地方呢,这个DB server list。是我们的第二个大标签,也是基本上贯穿到这个文档结尾的一个大标签,前面这个server标签呢,指的是别人来连接它的时候用的一些参数和内容,而这个server DB server list指的是我们这个去连接。其他主存从数据库的时候所用的一些参数明白了吗?OK,那在这里边呢?内容之所以比较多,是因为它需要连接几个,就需要有几个DB server。
25:08
比如他需要连一个主两个从,那需要有三套地米色号这个信息,看我这个这这个地方写了个乘以三。没意思吗?这个DB server的标签里边所填写的就是用来连接主存存数据库的端口。IP地址啊。然后是。等一些相关的信息,OK。那注意下边这个DB server所声明的pro。指的是我们把他们三个进行一个分类,他们三个谁用来读,谁用来写分类,分完类之后呢,把给它命名好的这个name往这个地方写就行了,这个地方你看写了个SN嘛,啊,写了个SN嘛。42123嘛,然后到时候这个泡这个池呢,是用来写的,那你把421和二写,421写到这儿,那421就是用来写,那又说明另另外一个泡,另外一个泡的意思是什么呢?是读,那你把四法二和4Y3写到了这个泡里边,那四法二和法就只进行读,当然我们这个地方只有主从,所以说就是呃,主用来写,然后呢,主和从都用来读就可以了。
26:21
这是大体,我给大家简单介绍一下关于这个配置文件里边的结构。好,我们接着来看,我们接着来看。这里面注释的内容非常多啊,这个地方你看注释的内容非常多,而且乱码了,我把这个地方删掉了啊。2345。然后我们来看一下啊,我把这些都删掉。注释空格。都删掉。这样一会儿我们去。
27:00
看东西的时候会方便很多啊。这个DB server list列出来之后,由把这些注释一筛,你看这个DB server是不是完全的显示到我们的面前了,是不是非常清晰了啊,是不是非常清晰了。那下边呢,是他们自己的DB server。那。我们现在还用不到一会儿就可以用到了。下边是一些做优化用的,我们暂时也用不到,先不管。然后呢,到这个地方之后呢,我们先看一下这个。DB sor。这个声明我们需要填哪些东西啊,需要填哪些东西。首先呢,第一个是关于服务器的名字,SERVE1啊,就是一,这个随便命名啊,随便啊叫A1也行,然后第一个是关于port,这再一个就是IP地址,那在IP地址,再一个就是连接数据库时所使用的那个用户名,以及连接库数据库时所使用的密码。
28:06
这就是我们的一个,嗯。怎么说呢,这就是一个我们用来连接,就是啊咪把用来连接主层层数据库的时候所用的一些信息,还有一个地方就是关于这个。连接数据库时所默认连接到的那个库是哪个库?登录的是哪个数据库服务器?信息好了,我们来写一下啊。嗯。端口306不用改IP地址需要改一改。四号门给他连那个主幺九二点幺六八点。88.10。曼联的这个数据库,我们可以给他改成at硅谷。连数据库时所使用的账户可以是root,其实也可以不是root啊。如果不是root。
29:03
那或者是入它也行。就是不管是什么,都得一会儿都得让这个数据库给他授权,得允许这个主机利用这个用户连接他,明白了吗?这个地方你用什么账户,你一会儿就得在这个服务器授权,允许这个一零机器以这个账户的身份联系你明白了吗?这个地方不管是啥都得写啊。这个地方不。上独立写。衣洗了没?是ASD,那无所谓了,刚才。我们这个地方就用。ABC吧,那就用ABC吧,以后我们用ABC来进行一个这样的一个,呃。授权哦,对。这个地方好像是掉了一个。密码,密码那个被我删掉了,应该是。被我删掉了。我在。
30:06
重新改一下啊。幺九二点。168.88.10。二零。主服务器是二零。呢,连接的库是。所使用的账户呢是ABC。所使用的密码呢是。所使用的密码是。123456。然后呢,这样的标签需要两个,为啥没有两个服务器吗?现这是多少号,二三四五六七八九十,11,十二十三,十四十五十六十七十八。19号。19、YY。19、YY。
31:00
注意接着在这个地方,因为他们两个是平行的啊,再来一个。然后呢,第二个机器就叫二。然后第二个机器连从服务器,那从服务器是三零。啊,也是恋爱硅谷密码也是123456OK。这样就有了啊。这样就有了两套,我们这个就就变成乘以二了,乘以二了。然后再管下边的那个坡,我们来看一下那个坡怎么来改啊。这优化的不需要操作啊,这优化不需要操作。然后再来看别的这个DB server,再找到一个DB server之后呢,它里边有个自己声明的一个内容啊,自己声明的内容。然后呢,里边有个叫multi po这个地方它叫multi。我们呢,可以叫什么呢,叫。Master。Master。这个主要意思是什么呢?就是。
32:01
默认连接哪一个?默认连接哪一个?就默认连接主还是连接这个葱啊对吧。或者叫default,或者default也行。然后呢,我们看。这个地方需要填啥啊,需要填啥。除了改掉这个名字之外呢,其实我们还有一个地方需要改的就是这个地方。这个。默认连接时使用serve几去连接,上面我们是不是刚声明了SERVE1和SERVE2呀,那这个地方如果你默认想去连接那个主服务器去写SERVE1,默认写上去连重复去写SO2,明白了吗?上边声明的SO142就写到这个地方,它这个方面就写S1了,那我就不改了。然后再下。只提供了一个模板,另一个梦需要自己负责,这个我已经做过了,我已经做过了。然后呢,这个slave还缺一个slave。我们的这个master指的是我们进行读的时候啊,进行写的时候找谁写啊。
33:06
找这个写,但我们读的时候还没有人读呢。比如说这个DB server还得再复制一套,123456。六歪歪。你会发现我们的DBC又多了一个,而这个呢,叫什么呢?这个叫。上改个名吧。这个的名字叫什么呢?这个名字叫。Right。这个叫什么叫。上面那个用来进行write的迟用谁来write?用serve来write?下边这个用来read的有几个呢?有俩serve也可以读。二也可以用来读。明白意思吗?两个机器都可以用来读。就这个意思,那就。然后呢,再一个往下走啊。
34:05
在这个地方有个什么呢?有个叫default pro,默认去连接哪一个池呢?默认去连接。It right吃。然后呢,当写的时候找哪个池呢,你看这个。数去掉。当写的时候长哪个吃呢?当写的时候找吃。那当读的时候找哪个词呢?找。Read吃。上面有个的尺。血吃,下面有个毒的吃。然后呢,默认连接写的是。写的时候连写的词,读的时候连读的词。注意这个时候呢。这个修改完了,这个对应的配置文件之后,还不算完,还要再去修改一下啊,米把的一个脚本,在uz老卡MBB一下有个mmr脚本,这个脚本啊,里边有一个,嗯。
35:08
杠server选项里杠S。默认是128K,给它改成256K。搜一下。为一下并一下的。按密码脚本。For opts。它默认是O叉SS128。改成256。这就可以了。然后呢,并且在主和从服务器上。啊,进行。指定用户的授权。为了能让阿密码连接过去,那我们在配置文件里边写的时候,是不是让阿密码连接它俩的时候,是不是用一个叫ABC的用户啊,并且密码是不是123456对吧。
36:00
如果你不放心的话,你其实可以再打开配置文件再看一眼。是不是告诉他用ABC连接,是不是那也酸塑料对吧。好了,我们来。从这两个机器上授权一下。这个的授权注意。这个的授权相对来说就比较简单了,为啥只需要授权允许他进行连接就可以了,那。地方就用。不好意思啊,打了个喷嚏。这个地方我们就直接授权所有权就可以了。用grant or。嗯。我们授权给他那个连接之后,用那个艾特硅谷那个链接at。硅谷。所有。给ABC用户。
37:01
艾特。嗯,192.168.88。下8.10,让幺零能够通过ABC啊。互连接,并且I den t。密码。123456。然后呢,这个呢,再给那个另外一个机器。这个也是允许要领啊,也是直接这样写就可以了,两个都这样写就可以了。然后呢,拿啊密码测试一下,这个很简单,Yam-Y。一下MY啊,为了确保能成功,我们要测一下。安装一些MYSQ软件,拿MYSQ软件连远程连一下存,看能连上不。
38:02
能连上没有问题,连不上就有问题了。MYSQL杠,U root杠。123456-H192.168.88点。二零。连不上。我们授权的时候是没有问题啊,看一下。At硅谷硅谷。ABC才行。受datas。
39:05
好了,这个授权也没有问题啊,授权也没有问题。然后呢,要运行一下我们这啊密码怎么运行呢?使用no hope命令将我们这个啊米把脚本呢运行起来之后放入后台啊,用80-X的方式,这个80-X作用啊是。在脚本运行时,将。运行的那个过程。写入到那个叫no.out的文件里边。这个杠X就类似于我们之前那个S-X啊的。功能是一样,就是在执行这些命令之前,先把那些命令都打印一遍。就这个意思,OK。的运行一下我们这个。阿密的这个程序。千千块钱目录啊。
40:02
运行起来之后,我们来看一下啊,运行起来之后。可以用p sux过滤一下,然后过滤一下我们的这个进程是否存在,如果进程存在的话就没问题,其实这个是很简单,也不用过滤了,直接net state-anp一下看八零。九九那个端口有没有就行了啊,806端口有没有。806端口只要起来就证明启动成功了。然后呢,测试怎么测试安装一个MY软件用杠UASD那个ASD就是这个啊,你把软件。户,但是我设置的是M密码,所以。用MB就行。然后呢,用杠H加杠大P直端口的方式来连接一下试试。来试一下啊,MYSQL-U。A Mo EBA。杠P123456。大批。8066。杠H192.168.88.10。
41:04
SE。Select星。From。At硅谷点。YJS表。两次查询的结果是不一样的呀,轮训那里为什么?因为我告诉他了查询的时候,查询的时候。SERVER1和SERVER2就是不是SERVE1主合从各查询一次,所以说看到的结果就是这样的一个结果。啊,所以说看完这个我就认一个。这也就是我们的这个。这种。啊,米八实现这种负载均衡啊,而且又实现了读写分离的这么一种效果,而写的时候只往主里边写,不会往从里边写。不用担心。这个真正的生态环境中啊,不会出现这种。我们拿中间件去查询时,两次查询结果不一样,那如果一旦出现不一样,那一定是主从数据库复制出现了问题啊。
42:05
那这个我们的关于这个阿米巴的这个实验就到此结束了,OK。只要验证到这个没有问题就可以了。本节课就到这儿,下节课再见。
我来说两句