00:00
好,那么略过这个慢查询日志之后呢,咱们来看第一个啊日志叫做通用查询日志,哎,通用查询日志啊,就像我们刚才呢,提到的就是大家呢,最直观的能够想到的这个日志呢,就叫做通用查询日志,就是呢,把我们整个啊用户呢,在服务器启动的这个过程当中,所有的这个操作呢,都记录下来,包括呢,我们如果启动这个服务器的时候呢,就已经开启了通用查询日志,这个时候呢,就呃,你的启动信息,包括你中间的这种关闭信息,用户的连接啊起止时间,然后发送给服务器的执行的所有的指令,我们都会在这个通用查询日志当中啊进行记录。啊进行记录啊,帮助我们可以去后期有问题的话呢,准确定位这个问题,相应的时间,还有他做的这些事情啊。好,这呢我们给大家呢举一个例子,比如呢,在这个电商系统当中啊,用户呢,购买这个商品,并且呢,使用这个微信支付呢,来进行了这个支付,支付完以后的话呢,他这个在支付的记录当中发现没有新增的啊,没有当前这个支付的这个记录,他以为呢自己没有支付成功,所以呢又启动了这个叫支付宝呢来进行一个支付。
01:02
啊,那实际上呢,他后期呢,发现呢,出现这个叫重复支付了啊,因为两个都给他扣款了是吧?啊这时候呢,就把这个问题呢,给反馈上来了啊,但是在他自己这个显示这块呢,仍然只有一条这个支付的记录啊,事实上呢,他却支付了两次,那么这个呢,把问题呢提交以后呢,诶我们就可以对这个后台呢进行一个检查啊,检查的时候呢,发现没有数据的问题。因为呢,我们对应的这个支付记录里边涉及到的像用户编号啊,订单编号啊,包括第三方流水账号啊,诶都是正确的啊,但是呢,用户呢,确实反馈支付了两次,那什么原因造成的呢,我们就需要呢,查看一下通用查询日志啊,在整个这个支付的整个各个环节当中啊,具体都做了什么啊。啊,就跟这个判案一样是吧,还有我们看当天整体的这样的一个发生的一个情况啊,那么发现的话呢,在当天的这个下午两点的时候呢,用户使用这个微信支付呢,完成了支付啊,但是这时候的话呢,呃,我们没有收到这个回调通知啊发生呢,呃,问题呢,是由于网络这个故障原因造成的导致呢,这个支付中心呢,没有及时的收到微信的这个回调通知。
02:03
那导致我们这个数据呢,首先就没有写入啊,数据没有写入了,然后呢,用户的话呢,发现他数据没有啊,对应的这个支付记录了,他就开始用这个支付宝进行支付啊,支付宝的话呢,其实呢,就返回了,相当于此时呢,我们就看到了这个用户的支付记录了啊,然后晚上的时候呢,这个微信的回调通知就过来了,但是由于呢,呃,之前的用户记录已经存在了啊,然后他就实现了一个覆盖操作,所以呢,自始至终我们就只能看到一条支付信息,但是用户呢,支付了两次啊,原因呢,我们也找到了,接下来呢,我们就去解决这个问题就可以了啊,那么在这个过程当中呢,我们说通用查询日呢,就扮演了一个非常重要的角色啊,它能够梳理呢,具体的时间节点,用户做的所有的行为啊,OK。好,那么接下来的话呢,我们就针对这个通用查询日志的基本使用呢,给大家做一个介绍,首先的话呢,我们查看一下这个通用查询日志啊,它呢是不是开启的,以及呢,它会记录在哪个路径下的哪个文件当中,对吧?诶那我们就直接呢使用这样一个指令啊,CTRLC一下好回过来啊,我们就在这个8.0当中去做了演示啊,我这呢已经登录成功了,直接呢把这个指令呢粘过来一回车。
03:03
好,大家会看到呢,我们查询到的两个变量,一个呢叫general log,就是我们所说的叫通用查询日志,它的这个值呢是off啊,这就意味着咱们这个呃,通用查询日长默认情况下呢,它是关闭的啊,这块我之前没有设置过啊,默认是关闭的,然后呢,下一个呢,叫general log啊file,诶大家会发现呢,这是不是就我们所说的叫数据目录了。然后后边这个呢,是不是就对应的我们这个通用查询日志,如果你要是写入文件的话呢,是不是就这个文件啊,而且我们还提到了一个文件呢,是一个文本文件对吧?诶我们可以直接打开呢进行查看的啊,那么这个艾特硅谷零五这个零五,注意不是因为我前面呢有一个,诶这个01020304到零五了,是因为呢这儿呢,是不是就我们当前这个主机啊,这个咱们在。呃,这个我在登录的时候呢,在哪呢?那在这是吧,诶我能看到我当前这个host name呢,是不是叫艾硅505啊,诶所以它记录的就是我们这个host name啊,这个大家注意一下。好,这呢,我们就知道呢,它具体的记录的一个位置了是吧?哎,那我们再换到这个路径下呢,你也可以呢,去查看一下啊,首先呢,我们CD啊挖一下啊lib啊MY啊回车啊L写错了啊L一下啊,我们看到叫艾特硅谷零五,嗯,艾特硅谷零五诶这块呢,相当于是目前还没有是吧?啊因为呢,咱们这块呢,相当于是一个off的状态呗。
04:19
然后接下来话呢,我是不是要把它打开啊,好,我们这呢,是不是就可以做个设置啊,那么打开的话呢,关于这个变量的设置啊,这两个变量啊,这个大家都比较熟了,一方面的话呢,我们可以采用这种叫永久性的方式,呃,在我们这个相关的配置文件当中,MYSQL地下啊,你去设置它是一个on,然后呢,你也可以去设置我们这个,呃,日志呢,具体记录的这个路径是什么啊,这个呢都可以去修改啊。那么临时的方式的话呢,我们就直接呢叫set global这种方式呢,去做设置,打开这个呢,是设置它的位置啊,这个都不用多解释了是吧,我们这儿呢,就不用配软件了啊,咱就直接呢临时的去设置哎,Global。Global,俺站着。啊,这个呢,下划线log是吧,改成是1ON的一个状态是不是就可以了,好那么这种情况以后呢,我们再去做一个数,哎,是是不是这块呢,就看成是一个on的状态了,好那么接着呢,我们回到这块啊,咱们这时候呢,做一个L的一个刷新走起好再往上走。
05:14
好,大家看此时的话呢,是不是就帮我们生成这样的一个文件了,诶生成这些文件以后呢,大家会发现,诶这里边好像就有一些东西了啊,那我们看看此时呢,它里边都有什么,诶我们就通过这个V来进行查看啊I的硅谷零。5.log属于它呀。好,就是比较基本的这样一个信息啊,因为呢,咱们刚才在开启以后,我是不是就紧接着执行了这样的一个操作呀,诶你会发现呢,这个操作呢,是不是就都在这儿有记录,而且什么时间做的啊,都能够显示出来,好再回过来啊,那么接下来的话呢,我们就可以做,诶你针对现在已经开启了通用查询日志之后啊,做一些事儿了啊,比如我们去use一下艾特硅谷零啊DB3啊这呢选中这个数据库,然后呢,我们去show一下叫a tables。啊,然后呢,我们比如说呢去select啊from,诶account这是咱们前面呢用到的一些表是吧,诶from一下这个叫student做一些查看啊,你也可能做一些删除,比如我这样按删除delete吧。
06:12
From啊,这个student说这个where I等于比如说20,然后把这条记录就给删了是吧?好,那么我们这些操作的话呢,其实都会在我们这个通用查询日志当中呢,去做这个记录。啊,你比如说我们这种呢,再去呃退出一下,我们再进来啊再走齐,好大家看那刚才呢,我们做的这样的一些行为,比如说呢,我们去使用啊叫呃select最大是吧?诶我们使用的这样一个数据库啊,做了一个use哈,然后呢,去show最大basis啊show tables这里边有一些操作呢,是它呢,就是在我们执行相关的操作的时候呢,后台呢,他要做的这个操作啊,也给我们加上了哈。然后呢这呢就列举出来了当前的这样的一些表,对吧?哎,这个咱们刚才也收tablebos了哈,诶然后呢,诶,你要查询的是什么,然后delete的是什么,诶大家你会发现,你看这是不是就完整的都给我们做了这个相应的这个记录啊,没问题是吧?然后这个时间的话呢,你注意呃,咱们现在呢,其实不是下午一点多啊,你得加上八个小时,咱不是在东八区嘛,那对应的就是晚上九点多是吧,就这两个时间节点。
07:12
好,那这儿呢,针对这个呃,通用查询日志呢,应该说呢,叫一目了然啊,大家看的呢,是非常的清楚的。啊,非常的清楚的好,那这块呢,我们做一个这个退出啊,此时的话呢,这个文件的大小呢,相当于就会有一些这个变化啊,其实啊,它其实会有一些变化啊,这个呢,相当于我们得需要做一个这个。刷新啊,前面咱们不是讲这个优化的时候提到过这个去,呃,优化这个表是吧,这个检查表分析表优化表啊,当时不是说过吗?还刷新一下就好了啊。好,这呢我就不说这个事了,行,那这呢就相当于我们知道这个文件里边呢,它具体记录的这些信息了啊,是比较清楚的。好,然后呢,我们下边呢,就考虑呢,诶我们还可以呢,去停止关于这个日志的一个啊记录,那停止的话呢,诶照样的,你要是永久的方式去设置的,你就把现在这个变量呢,要么改成off,要么就给它注释掉啊就可以啊,那要临时的方式的话呢,你就把它改成是个off呢就可以了。
08:05
Off就可以好。那么回过来。哎,回过来好,那这个呢,我们去做一个这样的设置啊。Set global啊把它呢,改成是一个off的状态啊,这就关掉了是吧,关掉以后的话呢,你比如我们现在呢,再去做一个啊,我叫select from,这个叫a student。哎,这样写一下是吧,好,那么回到我们这儿来啊,咱们呢,再去呢,查看一下看走起。好,那么我们去关闭的这个行为呢,你看它也记录到我们这个通用查询日志里边了,但是你关了以后呢,后续做的这个查询呢,就记录不了了啊,这个呢,也是非常正常的啊,没有问题是吧?好,我们就说到这啊行,这是我们说的这个事儿,然后呢,下边就提到一个叫删除或者叫刷新日志了。啊,就是我们这个通用查询日志呢,大家知道会把整个我们这个服务器在运行的过程当中啊,所有的这个用户的这样的一些行为呢,是不是都会帮我们去做这个记录啊,那这种呢,你相当于他花的这个成本呢,是比较高的啊毫无疑问是吧?啊那么我们这个通用茶知呢,就会越来越大啊这个时候的话,一方面呢,会影响我们这个性能,另外一方面呢,这个存储空间呢啊,也会占用的比较多,我们定期的时候呢,你可以呢,去把这个日志文件呢,做一个删除啊,或者你做一个这个呃,归档存放也可以啊也可以。
09:18
好,那删除的话呢,这个操作就跟我们正常删除个文件一样啊,这个就没啥可说的了啊,没啥可说的啊,咱们这儿呢,比如说给他做一个改名吧,啊改了名以后的话呢,我们想再重新生成一个呃对应的这个文件是吧,那我们这块呢,再退出一下啊呃,我们呢,比如说就在咱们当前这个文件呢所在的路径下,哎,我把这个文件呢删掉,删掉这个基本指令我就呃不去删了啊,咱们就保留着它吧,呃现在呢,想给它呢改个名保存下来,然后呢,呃,再让它生成一个新的。啊哎,这样的一个日志文件啊啊因因为有可能这个文件比较大了嘛,啊这样呢,我们改名的话呢,使用叫MV是吧,然后的话呢,把你旧的这个文件名呢,先写上,咱们叫艾特硅谷。啊,这个05点啊,Log是吧,然后改成这个新的,比如爱的硅谷零五.log.old。
10:07
哎,这样一个方式,那我们就做了个改名,然后再LL下好,再往上去查看呢,是不是就已经改成这O了是吧?哎,那么这时候的话呢,我们相当于是不是就诶这个,你要说把这个文件删掉,那就删了就行,你要觉得太大了没用的情况下是吧?然后的话呢,我们再去生成一个新的啊,通用查询的日志啊,怎么生成这个新的呢?诶我们使用的指定的是这个啊叫MY啊然后的话呢,我们后面呢叫root-P。啊,这个呢,写密码是吧,然后再后边呢,哎,就是我们前面的其实也用到过这个指令啊,叫做flag,哎,Flash这个locks是吧,这样个操作啊,走起指定完了啊输入密码去啊ABC123好,执行完了,执行完以后啊,我们这时候就有了吗?查看一下,那其实呢还是没有的。那为什么没有呢?呃,这个呢,我们要注意一下啊,就是要想有的话呢,我们必须得保证你这个,呃,日志呢,它得是打开的一个状态啊,相当于我们得给它改成是一个啊。
11:00
啊,因为咱目前呢,相当于是一个off。啊找一下,哎,这是一个off嘛,是吧,哎,咱们呢,得给它改成是一个on的状态。哎,改成on了是吧,改成on以后啊,那么回过来啊,其实有同学可能会说,那回过来以后呢,不用刷新了,我直接查看一下。啊,你看直接查看呢,其实这时候就有了是吧?哎,其实就有哈,就是如果说呢,我们刚才呢,你把这个名改成它以后,哎,然后这个时候呢,你去LL的时候呢,还没有,哎这个也是默认开启的啊,你可以刷新一下就有了是吧?哎就可以,诶行,那么我们就可以呢,是不是接下来的话,你把这个信息呢,是不是就记录到这里边就行了啊像我们这个文件的话呢,呃,刚才呢,没有及时的去更新,你看它显示的那个大小呢,是不是比较小一些啊再往上翻。啊,比较小一些,然后呢,诶这块我们又重新的查看的时候呢,它就给我们呈现这个正常的这个大小了啊,你会你会看到呢,这个随着我们这个数据的不断增加,这个文件的增长还是比较快的啊,所以一般情况下呢,我们可以考虑呢,就是这个文件呢,在这个日志呢,我们就给它关闭啊就可以啊。好,那么这呢,就是我们关于这个叫通用查询日志啊,应该说呢,比较简单啊,那我们就说到这儿。
12:05
好,咱们接着来讲呢,叫做错误日啊,错误日呢,顾名思义啊,就是呢,记录咱们MYSQL服务器呢,在整个的运行过程当中,诶,它出现了一些错误啊,警告啊,提示啊,诶等等这样的一些信息啊,那当我们的服务器呢,发生一些故障的时候呢,那我们首选呢,就是找这个错误日志啊,从这里边呢去看看到底诶发生什么问题了啊,给我们提供一些有效的信息,那可能有同学会说说老师呢,那我去打开这个通用查询日志呢,岂不是更好,它里边记录的信息呢会更多。啊,注意我们说呢叫首选,没有说呢就直选它啊,那整体上来看的话呢,因为错误日志里边呢,它记录的信息呢,会更直接一些啊,或者呢,它的这个文件的大小呢,会更小一些,你要查看通用查询日志的话呢,这个文件的记录信息量呢,实在是太大了,你从这个这么多的日志当中去翻出我们要找的问题呢,可能本身也不容易是吧,所以我们先看它,再者说的话呢,这个通用查询日志呢,通常咱们可能就没有开启。
13:02
而我们这个错误日志你会发现呢,它默认情况下呢,就是开启的,你想关呢,还关不了啊,所以说呢,这个错误日志就是供我们去使用找问题的啊,可见呢,它还是比较重要的,对吧?好,那如果呢,我们去查看一下这个呃,错误志它默认存放的一个路径的话呢,诶我们下边也有这个指令哈,你会发现呢,它默认的这个名叫做MYD点啊,这个呢,针对的是咱们在这个Linux这个系统下,那如果呢,你是在这个unix啊,像ma克一样是吧?Unix这个系统下的话,你看到的它叫house叫error啊,就这个文件的这个后缀呢,它不太一样。好,那我们呢,也可以呢,在这个配置文件当中去做一个设置啊叫log error啊叫错误日志是吧,来指定它的这个路径呢就可以了,行,它默认情况下呢,还是一个开启的状态啊,然后呢,我们这时候呢,查看一下它存放的一个路径,通过这样一个指令呢,去查看啊,回到我们这个位置呢,直接咱们拿过来啊走棋。好,这时候的话呢,我们就能看到这个错误值呢,它存放在叫y.log下的叫MYD这样的一个log文件里啊,这是咱们这个这个Linux里边的默认的一个路径啊,就看清楚了是吧?好,那我们这块呢,是不是就可以试图呢去做一个查看呀,啊那我们就回到这个位置呢,去查看吧,啊这块呢,我们就可以呢去呃直接呢,咱们去通过这个V呢去打开就行是吧?哎,外下的。
14:20
啊,是不是叫log下的叫my circlel,诶MYL d.log你看它这个名字呢,既然用的叫MYSQLD是吧?好,我们回撤一下。好,大家你看这时候的话呢,我们是不是就看到这样相关的一些信息了,而且你会发现呢,它这个信息量呢,好像就没有这么多。啊,他在这个时间的话呢,是不是就当初咱们啊,这应该是我了哈,诶我录这套课程的时候呢,诶最初呢,去安装啊这个啊麦SQ这个服务器的这样一个时间节点啊,而且呢,你看这里边还记录了什么呀,是我们当初啊,大家还记不记得咱们在Linux下呢,去安装了以后啊,说到过一个呢,给我们入的用户呢,是不是有一个默认的一个初始化的密码,当时呢,咱们查看的其实就是这个文件。
15:02
啊,就是我们这个MYSQL地点log这个文件啊,啊,当时那个密码呢,其实我们就从这儿拿来找的啊,所以呢,你看从当初到现在啊,现在呢,已经是2022年啊一份了啊到现在的话呢,其实记录的这些信息呢,都还比较有限啊,没有这么多是吧?啊你也可以呢,这块诶我们呢去推出一下啊,大家你可以看一下啊CD啊下的log啊,然后我们L一下啊Mexico d。啊,My circle。哎,D是不是你会发现呢,这个文件呢,是不是也比较有限。啊也比较有限啊,所以说呢,这个错误日志的这样一个,呃,Log呢,我们通常呢,也都就开启了。啊,突然就开启了啊行这呢就是我们说的这样一个事儿啊,那如果说你遇到问题的时候呢,我们去查看里边的一个信息就OK了,然后下边呢,我们就再说一下呢,就是删除或者刷新这样一个过程啊其实这块呢,跟我们上面讲的叫通用查询呢是一样的啊嗯,你删掉也行。啊,删掉也行,或者你把它做一个重命名也行啊,是不是对应的指令呢,我都放在这儿了,呃,执行一下就可以了是吧?嗯,当然这里边呢,有一个小细节的问题啊,我们给大家说一下,嗯,咱们这块呢,把它呢,比如说还是做一个重命名吧,哎,针对的是啊诶刚才呢,MYSQD是吧,把它呢做个重命名好的,诶我现在已经是在这个路径下了哈,你要不在这个路径下的话呢,这个改法的话呢,诶我也演示一下吧,诶举个例子哈,比如我们现在在y.lib下的my circle,我现在在在这个路径下,对吧?那么此时的话呢,我们需要呢,做一个重命名啊LV啊,那你这块呢,就写全了啊,点log点。
16:32
D点啊,是不是这个log呀,嗯,它是吧,然后呢,我们把它改名成啊点啊log这个路径的不变啊MYS d.log.old。哎,我这么着改一下,然后你再,嗯这个L2不行了啊,我们现在去过来是吧,哎y.Li哎不是Li了log。它的下边啊L好,这时候我们去查看的话呢,是不是叫MYSQ d.log.o了,哎,就成它了是吧,就相当于做了个重命名,重命名完以后的话呢,呃,那我们默认情况呢,它还是开启的,那我们这时候就想说直接刷新一下是不是就可以了呀?好,那这我们去刷新啊,咱们使用的叫mylin是吧,然后呢,这个杠U啊root-P写密码,然后呢叫flash。
17:16
啊,这个叫locks是吧,走起ABC啊123好走起,然后的话呢,大家你会发现明明呢,感觉应该比较简单的是,他这时候呢,去给我们报了一个错误信息。是我不能够打开这样一个文件啊,不能打开,那刷新不是就让我们帮忙去生成吗?诶你会发现呢,它现在生成不行是吧?呃,这个生成不行呢,诶这块呢,找这个解释呢,还不太好找,最后呢,就放到这个官网上了啊翻到这个官网上了,官网上里边呢,诶提供了这样个信息,说我们要是去做一个,呃刷新操作的话呢,你前前提呢啊,你得把这两个事儿都做了啊这呢是以这个改名为例来演示的,下边这个操作呢是关键。诶下边这个操作是关键,相当于呢,我们要想去执行这个事儿的话呢,我们必须呢,要把这个操作呢去做一下,好那么回过来啊,大家你看啊,我们执行这个诶flash的时候相当于失败了是吧,我们在再次执行它之前呢,把这个install呢做一下。
18:09
啊,Install完了以后呢,我们再去执行这个flash啊,输入一下我们这个密码走起,你看这时候呢,就没有报错是吧,我们再去做这个LL,我们就会发现呢,这个MYQ啊d.log就生成了,而且这时候呢,没有任何的错误信息,哎,它的大小呢是零。啊,就这样个问题啊,那么为什么这块我们必须要输入这个叫呃这个执行这个叫store呢,呃这块呢,从一个文字当中呢,也能看到一些端倪,说呢,在这个麦斯和5.5.7以前那个版本当中,我们去做刷新呢,它不光呢是帮我们创建新的日志文件,还会呢,把我们旧的这个文件呢,做一个相当一个备份啊,就是或者给我们存储起来啊叫一个old了。好,那么在5.5.7呢,这个操作呢,他能做的事儿呢,就非常有限了,只是呢,重新打开这个文件啊,做一个刷新操作啊,连那个备份操作和我们这个创建操作他都不做,正因为他没有做这个创建的操作,所以我们去做flash的时候,你发现他就报错了,哎,就是刚才我们这个错误信息说打不开,因为你没创建嘛,那怎么创建呢?诶其实就是我们这个install,诶他做的这个事。
19:10
啊,相当于他把我们这个文件给创建了,然后通过flash的方式呢,只是做了一个呈现啊,只是做了一个呈现啊,所以说呢,大家记着啊,关于我们这个错误,你想做一个呃,重新生成的话呢,记得中间有这样的一个步骤啊,这个大家小心一点好,那么关于这个错误日啊,其实也比较简单啊,诶我们主体上要说的呢,也就这些啊,后边呢,这块提到一个8.0的新特性,就是针对于社区当中呢,提到一些常见的问题啊,接受不了的问题啊,比较冗余等等的,在8.0当中他做了一个改变啊,确实呢,我们也看到了这个内容还是比较。这个叫什么短小精悍的是吧,哎,就是针对我们这个错误的话呢,我们就更容易的去找到我们需要的信息了啊。那么针对于我们这个错误志呢,一般情况下呢,咱们其实是用不着去打开的啊,但是呢,我们如果发生一些异常信息的时候呢,首选查看错误日志,好知道这个呢就可以了。
我来说两句