00:00
大家好,我是商务的讲师孙康,那么承接啊,咱们第15章啊,接下来啊,咱们给大家讲解一下第16章,这个第16章呢,叫做变量流程控制和U标啊,为什么叫承接第15章呢?因为呢,我们可以在存储过程和函数当中去使用变量啊,去使用我们的分值结构啊,或者叫循环结构,可以去使用我们的叫游标啊科。那就这样的情况啊,那我们来看一看咱们第16章中章当中啊,咱们讲的这个内容,那么首当其冲啊,咱们来讲一讲这个变量。啊,这块呢,提到了说咱们在MYSQL这个存储过程和函数当中啊,咱们可以使用这个变量呢,来存储查询,或者是计算当中这个中间结果啊,或者是输出啊,这个到我们这个变量当中,对吧?哎,咱们在讲这个存储过程和函数当中啊,咱们比如说呃,这个去调用的时候呢,其实咱们已经用过这个变量了,你看我当时呢,是不是叫set一个艾符,咱们后边呢,写一个这个变量名,然后通过冒号等于的方式,或者直接等于的方式呢,就定义了一个变量,并且呢,给它附了一个初始值,哎,接下来咱们通过这个car的方式呢,去调用这个存储过程来把这个变量呢,可能就放进去了。
01:09
啊,是这意思吧,哎,其实呢,咱们在上一章当中已经呢使用了一下这个变量了,只不过我们这一章呢,系统的给大家去讲解一下这变量,好,那既然呢,我们提到叫系统性的讲解,那我们呢,就得从一个宏观的角度呢,来说一说咱们这个变量这个事儿。那这里边儿呢,我们就提到了,除了咱们上一章讲的那叫做用户自定义的变量。除了它之外呢,我们系统当中实际上还存在很多的变量,那我们就要把这个系统变量呢,也给大家呢,要讲清楚啊,那么这个系统变量对于咱们讲下篇内容来讲呢,也是适用的,那就整个覆盖了咱们MYSQL这个数据库层面的这个所有的变量了啊,我们就一次性的就全给大家说清楚啊好,那么首先的话呢,咱们先别讲这个用户自定义的了,哎,咱们先来说一说这个系统变量啊,那这个时候呢,跟咱们的存储过程啊,跟函数啊,就暂且先没有关系啊,暂且先没有关系。
02:00
好,那咱们呢,先来讲解一下这个系统变量,那首当其冲呢,就提到说这个系统变量它也有一个分类是吧,那我们来看看这里边这个内容。首先我们说这个变量啊,它是由这个系统定义的啊,不是用户定义的,所以我们称为它叫系统变量,它呢属于服务器这个层面的,当我们在启动这个MYSQL服务的时候啊,咱们就会生成MYSQL服务的一个实例。啊,生成这个MYSQL的这个服务的话呢,大家应该都知道,就是我们在呃,这个管理这块有个服务,就是把MYSQL那个服务就启动起来了,对吧,那一旦启动起来以后呢,我们就会对应着一个叫MYSQL的一个实例。诶,这个实例呢,它在运行期间呢,就有很多的这个系统变量了啊,公关上你就知道啊,有好多的系统变量了,那么这个系统变量都有哪些呢?呃,一些呢,是在咱们这个编译MYSQL时候的一些参数。啊,这时候呢,会有一个默认值嘛,因为你只要一启动起来,就会给这些系统变量呢,就会加载到内存当中,哎,同时呢,给它去赋值。是吧,给他去复制了,那么还有一些这个系统变量呢,是我们放在这个配置文件当中的。
03:03
哎,大家还记不记得咱们这个一开始装这个麦斯库的时候呢,咱们装过一个5.7,装过一个八点零两个版本,对吧?那么针对5.7版本的时候呢,咱们说默认的字符级呢,是那个拉丁,咱们需要呢,去修改一下,当时咱们就改了一下这个麦点I这个文件啊,当时当时呢,我们就设置一下这个字符集,其实当时设置这个字符集呢,就是相当于在设置我们的这个诶系统变量。哎,就相当于在设置这个系统变量,而且设置完以后呢,我们还得重启一下这个服务器是吧?诶那这时候呢,服务器呢,再去读一下,说白了就是让我们这个MYSQ这个实例啊,再重新的启动一下,去读那个配置文件,然后接着的话呢,把这个系统变量它就进行一个重新的赋值了,哎,就是这个意思,哎,首先的话呢,大家可以通过这里边我提供的这样的一个网址是吧?诶CTRLC一下,诶我们打开这个浏览器。这个你放到这块。那么这个网址当中啊,呈现给我们的呢,就是8.0当中提供的这个,呃,系统的变量都有哪些。啊,提供的这个系统变量都有哪些,那这块呢,咱们就知道你从哪官方去看啊就可以了,这里呢,大家没有必要呢,去看这个官方文档啊,去把这边所有变量都弄清楚,这倒没有必要了啊,你只需要关注我们常用的一些变量就OK了。
04:14
啊,这里边呢,首先我们提到这个变量啊,系统变量,然后下边呢,我们提到说这个系统变量,咱们还可以呢,再给它去细分啊,就是针对于我们说变量分成两类,然后这个系统变量呢,它又分成两类,哪两类呢?诶我们一类呢,称为呢叫呃global系统变量,就是全局系统变量啊,也简称呢叫全局变量了,还有呢,叫做这个绘画系统变量,绘画呢叫做session。啊,这个呃,绘画性的变量,你也可以呢,称为呢叫绘画变量,或者呢叫做logo变量,哎,都可以。诶这块怎么又分成叫全局的和这个会话呢?诶这里边儿呢,其实就涉及到了一个点,就是咱们这个MYSQL服务器呢,刚才说了,在启动的时候呢,咱们对应的一个实例,这个实例内部的话呢,只要它启动起来,咱们就会把这个系统变量是不是都加载到这个内存当中了,对吧?哎,加到内存当中以后啊,我们说变量呢,咱们可以理解成它们这个作用域啊,不太一样。
05:06
啊,你也可以理解成呢,按照这个作用域呢,我们分成了叫全局的和这个绘画级别的,那么这个全局的跟画画级别这个变量,这个它们是一个什么样的一个关系呢?哎,我们先把这个事说清楚啊,我这儿呢画一个圆,我呢再画一个圆。诶大家呢,可以把左边这个呢,我称作这个叫A集合吧,右边这个呢,称为叫B集合,这个A集合里边放的呢,咱们理解成了叫全局系统变量,然后这个B集合呢,放在呢,大家理解成了叫做绘画系统变量啊,那你就能看到我们发现呢,这个整个呢,咱们来讲这个系统变量的话呢,相当于有一些系统变量啊,是不是它既是全局系统变量,又是绘画系统变量,对吧?那么还有一些变量呢,它只是全局系统变量。啊,还有一些变量呢,它只是绘画的系统变量,哎先呢,大家明确这个事儿。诶,先明确这个事儿好,这个事儿清楚以后的话呢,咱们下边来看一看他们二者有什么区别。
06:01
诶他们二者有什么区别啊,当我们这个MYSQL的这个实力呢,诶或者我们叫这个服务呢,启动起来以后呢,那么这个时候呢,咱们整个的这个全局系统变量,就我这个A集合呢,就全部呢做了这个,诶初始化了,哎你这个变量呢,该是什么值,就全部都附上值了。OK,好,那么当我们这个具体的一个客户端,咱们去连接这个MYSQL服务的时候,只要他一连接,那这个我们就称为呢,它是一次会话。诶注意听啊,大家有可能没有学过这个,呃,这个咱们叫web端了是吧,你要学过这个web的话呢,我们就会讲什么叫绘画啊,诶大家有可能没接触过,那我这儿呢,我就把这个事呢给大家说一说,诶我们一个客户端会员一个请求发起呢,对你这个数据库的一个连接,然后接着呢,做相关的这个请求操作,我们就哎表示呢,他此时建立了一个会话。好,那么它一旦建立这个会画以后的话呢,我们就会涉及到你这个B集合中这些变量的一个初始化了,那同学说B集合不是跟A集合有一些重复的吗?好,那么重复这一部分呢,那就跟A集合呢,这个呃,负的这个初始化值呢,是完全一样的,那么这个呃,B集合它自己特有的这些呢,随着你这次会画的一个创建呢,它也做了一个内存中的一个加载,然后并且呢,也做了一个初始化。
07:14
哎,也做了个初始化啊,就是这样子的,好,那么同样的话呢,我们客户端二客户端N是不是都会如此啊,哎,都会如此的,我们去建立很多的这个会话啊,那就意味着我们其实这块呢,呃,跟其他这个我们只能说叫B1了,是吧,你还有其他的这个这个客户端建立了其他这种绘画级别的,诶那么针对这一块区域。哎,针对这块区域大家来看是不是说呢,我们针对客户端一吧,我这个叫B1的啊,那我换一个颜色吧。哎,我用这个蓝色来表示,哎,就是这样一个区域,这个区域的话呢,是不是它只是哎针对于我们这个客户端一的这一次会画呢,特有的这样的一波这个绘画这个系统变量,对吧?诶我想说什么问题呢?就是我们这个客户端一呢,它可以是把这个变量呢,做一个值的一个修改啊一会儿呢,我们就讲如何去修改啊,那我们这个客户端一老师修改以后呢,它会影响客户端二的那个他自己特有的这变量吗?
08:08
啊,其实不会啊,客户端二怎么去理解呢?就好比是我这块呢,其实还是这个相同的这一波数据是吧?哎,直播呢,这块呢是呃这个这个大家能理解这个事吧,我我重新画一个A吧,然后这块呢,我们这是还是这个A,然后这个呢就改成这个B2了是吧,我们把这个B1的你这个自己的这个呃,绘画级别系统变量改了,会影响B2了吗?是不是显然不会啊。哎,显然不会,但是如果说我们要是这个B1的这个绘画的这个,呃,客户端,他要是把这个位置上的这一个变量做修改了。嗯,这个位置变量做修改了,会影响他吗。啊,其实也不会啊,其实也不会啊,因为呢,你还是你这个每个是不是现在每个客户端这个会话是一份是吧,那我们要这个B1这个客户端他要改这个变量呢。改这个变量的话呢,那大家就需要这个警醒了啊,因为什么呢,我们,呃,所有的这个客户端呢,所有这个会话呢,呃,因为这些变量呢,它只是这个全局的系统变量,你要是这个客户端一给改了,那其他这个客户端呢,去访问的时候,是不是也是修改以后的呀。
09:07
哎,这块呢,大家稍微的要注意一下。啊,这个大家稍微注意一下啊,哎,说的呃,直白一点呢,就是什么呀,就是有一些这个系统变量呢,这个它只是全局系统变量,那么呢,呃,一个客户端要给改了,或者叫一次会话给改了,是不是导致别人就也改了啊,那么除了这之外呢,剩下的这个变量呢?诶它呢,其实都是有这个会画级别的,哎,都是有这个会画级别的,那你要是通过绘画级别去做修改的话呢,那只是改你自己的,别人的这个绘画级别不会改是吧?不会改啊。行,哎,当然呢,这个其实要一说就多了啊,我们这个变呢,它既是全局的,又是我们这个,呃,当前这个绘画级别的,那我们改的时候呢,你得说清楚,你到底改的是全局的还是改的绘画的,你要改绘画的不会影响别的绘画,但是你要这块呢,改的时候呢,就说我改的是全局的,那么其实也会影响我们其他的这个客户端。啊,这个说的有点绕,哎,我想大家应该能清楚我这里边想表达的这个意思啊,哎,那么画一个简图的话呢,哎,就是这个层面。
10:05
哎,就是这个层面啊,好,那么接着我们说下一个问题,那刚才呢,我们提到这个叫全局的系统变量和会画集的这个系统变量,那么呃,它这个我们比如把这个值呢,做了一个修改了,它在什么场景下呢是有效的呢?就是全局的系统变量,那如果我们修改了以后呢,它针对于所有的会话都是有效的,但是呢,你别去重启我们MYSO的服务。啊,你要一重启服务了,相当于整个我们这个实例呢,就全部干掉了,然后它就得重新启动,一重启的话呢,这个又会去附默认值,那你刚才修改过的呢,就失效了。啊,重启服务呢,大家应该都清楚了,在这个Windows场景当中,咱们就相当于是把这个服务呢,是不是直接做一个重启这个事儿啊。哎,把这个打开。啊,这个咱们选中这个M就相当于这块你点重启,那这个时候呢,你的系统变量你要修改过呢,这个时候就失效了啊全部呢重新的再去,诶是不是再加载一遍了是吧?哎,这是我们说这个事儿,或者我们通过这命令行的方式也一样啊命令行的方式呢,就我们也讲过相关的这个指令了,你去重启一下这个服务啊,那这时候你的之前设置过的这个系统变量呢,全局系统变呢,它就失效了。
11:09
好,那么绘画系统变量啊,就是针对你当前这个绘画呢,是有效的,你要是把这个会画断掉以后呢,再再起一个新的会画,那你这个呢,会画的系统变量它也就失效了,那怎么理解这个绘画呢?大家可以理解成呢,就是咱们在这个客户端这块啊,你像咱们一开始的时候是不是都会去建立这个连接是吧。那我们每建立一个连接呢,相当于就是一次会话啊,你比如说现在呢,我们针对这个5.7我建连接了,我现在呢,在这里边儿,比如说去修改过会话系统变量。啊,注意会话系统变量,然后呢,我们把这个连接呢,给它断开了。是吧,我给断开了,那就意味着你这次绘画呢就结束了,那我们呢,如果再去新建一个针对5.7的一个连接啊,那你再去看一下说诶我们那个绘画变量是多少呢?注意它已经不是刚才的那次绘画了,所以这个时候的哎,是不是值又恢复到这个默认的这个值了呀。
12:00
啊,先把这个理论呢,大家弄清楚,一会儿呢,咱们来写这个代码来给大家去说明啊。好,嗯,下边这块呢,就提到一个点,就是说我们有一些这个呃变量系统变量啊,属于这个就是只是啊全局系统变量,比如说我们这个叫max那个connections是吧,它只是这个呃全局的,那么有一些这个系统变量呢,它既是这个全局的,又是这个绘画的,比如说呢,叫capture set。那我们这个呢,设置它的时候呢,你可以指明你设置的是绘画级别的,还是设置的这个叫全局级别的啊OK,然后还有一些这个系统变量呢,它的作用率呢,只适合于当前的绘画的,那比如说我们这个它呢,是设置当前会画的这个MYSQL的这个连接的ID的。啊,那你要是对于我们那个全局来讲,系统全局的系统变量就没有意义了,哎,所以它只是咱们说的,哎,就是这里边我们讲的这三个的话呢,相当于就是哎这个呢,对应的是这个位置是吧,然后这个对应的是我们中间的一个交集的位置,这个对应的实际上是我们这个位置是吧,哎,OK啊。
13:02
好,那这块呢,我们讲了很多的这个文字性的内容,下边呢,我们来看具体代代码上呢,我们怎么去体现啊,咱们刚才讲的这样的一些点。好,那首先呢,咱们先把这个章的这个知识啊,CTRLC,咱们在这个笔记当中去说明一下。啊,第16章是吧,诶传过来啊好先这个CTRLS咱们保存一下。哎,保存到咱们这个位置上啊,CTRLV啊弹过来。好嗯,咱们刚才说的第一个事儿啊,先需要大家去了解的就是整个呢,我们关于这个变量呢,哎,它呢就是分为呢,叫做系统变量。那系统变量是吧,诶还有呢,我们叫这个用户自定义变量。哎,这样一个情况,然后这个系统变量呢,刚才我们就提到了,呃,一个呢,是拿这个g global去修饰的,哎,我们叫做全局,哎,系统变量。没问题是吧,哎,除了全局呢,还有用这个三十来修饰的,叫做绘画。哎,系统变量。
14:00
哎,叫绘画系统变量。好,那这个用户自定义变量呢,咱们一会儿呢,讲完这个系统变量之后呢,咱们再来说它,哎,OK,好,那接着呢,我们来说这个第二个问题啊,咱们针对系统变量,刚才我们提到这个点和这个点,大家呢,脑海当中要浮现他们二者的一个关系啊,就是我们说的这样的一个关系,哎,他们是有这个交集的部分的啊,就有一变呢,既是它又是它啊好,那接下来的话呢,我们看这个代码层面呢,我们要说的这个事儿。哎,要说的这个事儿,首先呢,我们看一下如何去查看这个系统变量。那既然说到查看系统变量了,我们说不是说提到有的是全局的,有的是这个session的是吧,那我们就可以呢,去呃,Show global的,还有variables,还有呢,去受这个session,这个variables,哎,你要不加这个session呢,咱们默认呢,你就是session。我这个上面应该有写啊,就是你要没有指明是global还是session,默认的就是session。OK,就是这个意思,这呢相当于是一个查看啊,查看所有的,那你也可以查看部分的,那就是show,诶,Global variables,然后like,诶我们呢,这可以写这个模糊查询了,哎,你就想查询诶某一部分的是吧?诶这块呢,加上session,诶就是这个绘画级别的,你要不加session呢,叫show like呢,相当于也是绘画级别的。
15:17
啊,咱默认的话呢,你要没加这俩呢,就默认是session是吧,OK,这个呢,是我们做一个查看,行,咱们先来说这个事儿啊,如何查看这个系统变量。如何查看系统变量?好,刚才我们说过了啊,叫受,首先呢,我们叫a global,这个单词呢,大家需要会写啊,Variables。这个呢,就是查看我们所有的这个叫系统变量是吧,哎,全局系统变量走起。多少个?啊,这个我们CTRL,诶,这个我们是在这个5.5当中跑的啊嗯呃,不是5.7当跑的,咱们换一个啊,咱们在这个8.0中去跑。我把这个呢,我CTRL,嗯,这块我CTRLX了啊,粘到咱们这个位置上啊,我CTRLX以下。
16:00
这个保存的话呢,咱们其实还是还是存到他这了是吧,嗯,这个名字都还一样,我这样重新再CTRLC一下CTRLS。啊,看错V。啊,到这儿是吧,哎,让我保存一下。好,咱们在这个嗯8.0当中去说啊,哎,为什么我刚才运行完以后呢,诶这个我说咱们是在5.7呢,因为呢,咱们诶通过刚才这样运行,大家你会发现呢啥呀,就是咱们这儿不同的这个,诶这个数据库的这个版本下呢,它这个系统变量的这个数啊是不一样的啊刚才呢,你看到一个个数,那我们在这个8.0当中,你再看啊,它其实这块的个数呢,增加了。啊,你看617个是吧,诶刚才是不是500多呀?啊OK啊,当然你又不用去研究到底说增加了哪些了啊,这块我们一共查到叫617条啊,相当于呢,有617个呢,叫全局是不是系统变量啊OK,然后我们再去说一下啊,咱们叫什么呀?叫session是吧。Variables。哎,这样来我们选中,哎执行一下,哎这呢,你看有640个啊。
17:04
哎,640个好,那这二者的话呢,咱们刚才提到他们一个关系呢,是不是这个样子的呀,哎能理解这个意思,行,然后接下来的话呢,我们再去呢,叫受啊,咱们直接呢就是啊,Where both。相当于这时候我没有加global,也没有加session,那这时候出来多少个。诶是不是640个相当于此时呢,我们理解了就是默认的是不是查询的啊,是这个会话。来系统变量啊。变量啊,哎,上面这个呢,咱们查询的这就是全局系统变量啊,写一下吧。查询全局。哎,启动变量。哎,查询呢叫绘画,哎系统变量,哎,OK没问题,好这样呢,我们是查看的一个所有的,然后我们还可以呢,去查看这个部分是吧,诶查询部分的啊。
18:02
那系统变量我就不写全局的,还是说这个session了,好,那我们这块呢,还是这个受是吧,哎,Global,哎,Global啊叫variable s是吧,哎这块我们加个like就行了,那比如说你看我们这里边有好多这个是admin开头的,那比如我就以它为例吧,哎叫admin下划线来一个百分号,哎是不是这样子就行了,哎我们选中了做个执行。哎,你看这时候就出来的是他。哎,他是吧,呃,然后这个呢,你也可以把这个改成一个叫做session是吧,或者你这块也不写,我就写个叫show,叫wheres是不是这么着,哎,叫like,这个大家眼熟吗?我们前面呢,是不是,呃,一开始的时候呢,讲这个字符集的时候呢,我们提到过这个操作呀。还有印象吧,哎,那这个操作里边我们没有写这个是global还是session,相当于默认这块呢,是不是就是session呢?哎,当前这个绘画的啊,然后呢,诶character,那这呢,就是凡是开开头呢,我们就都查到了,所以当初我们在装完这个MYSQL数据库的时候,诶咱们查看一下,说这个字符集是什么样子,咱们当时用的就是这个指令啊,其实这块呢,你要追根溯源的话呢,就是在我们这个位置上来讲的这个内容。
19:06
啊加的内容OK,哎,这块呢,相当于我们就能够查看一下这个系统变量啊,属于这个呃,整体的和这个部分的是吧,然后呢,我们再来看看如何查看叫指定的某一个这个系统变量。哎,指定的某一个啊,哎,作为MQ这个编码的一个规范呢,咱们这个系统变量呢,是用两个艾符呢来表示的。两个来表示。咱们呢,讲这个存储过程和存储函数的时候呢,咱们当时用过是不是set,我当时用过一个的是吧,那一个呢,就是我们后边要讲的这个用户自定义的时候呢,它是一个的,而这个系统的话呢,我们用两个这样的话呢,是不是就很好的做了一个区分啊。那我们呢,用两个这个艾符呢,开头表示的就是系统变量了,那你系统变量又分成global和session怎么办呀,那我们这两个符之后呢,加global那就是全局的。你要加上个session的话呢,哎,我就认为你是当前绘画的。
20:00
哎,就这意思,那我们要是光写两个at啊,比如说这样子是吧,我也没写你是global还是session,那怎么理解啊。啊,那这块我们说呢,他会先在这个,哎,这个绘画变量,系统变量里边去找,如果会画系统变量里边不存在了,他在呢,认为你是全局的啊,其实这个也,哎很好理解是吧,哎,也很好理解,行,那么我们要想查看指定的系统变量呢,这里边就提到了这样的一个方式啊,Select select select。OK吧,好,那这块我们来演示一下啊,CTRLC。那回过来。嗯,这个是嗯变量,嗯这块咱们这样吧,因为咱们这呢,是不是好几个大的内容啊,嗯,咱们这样先整体上去说,这是一呢,叫做这个哎变量啊,这个我们称为它叫1.1啊,这个叫1.2啊。好,这个我们再写个1.3这块呢,我们是哎查看哎这个指定的这个哎系统变量。哎,查看指定系统变量,刚才我们说了是不是叫这个select是吧,好select呢,我们两个艾符,然后隔global。
21:06
哎,Global,然后呢,是不是一个点啊,哎,刚才呢,我们提到说,嗯,有这个只是这个全局系统变量的,我们叫这个max是不是叫connections啊,哎就它,哎我们这块选中,哎跑一下。啊,大家看到这个值呢,是不是151啊,还是151啊,还还有印象吗?就刚才咱们讲的时候呢,哎,我说到一下这个内容。嗯,这样我盯一下吧,方便大家去理解的啊。回过来。那么针对于这个参数来讲呢,它是不是只是,哎叫全局系统变量是吧?哎,我们这样呢,去搜就搜到了,哎,那要是说只是的话呢,是不是就意味着如果我们下边啊,我叫select,哎,然后我写成了叫做session。哎,我写一个叫max。Connections这块呢,是不是就会有问题啊,哎,我们走起你看这块就报错了,说你这个变量的话呢,它是一个全局的系统变量啊,你要用这个session呢就不对了是吧?哎这呢,我们说这个就很跑错了。
22:01
那这个大家应该能理解好的,那我们接着呢啊,去select一下,咱们写一个这个session吧。那这个哎,Session的是吧,这个session这块写的话呢,哎,其实你可以写呢,就是呃,既是全局的又是这个,呃绘画的,或者呢,你就写这个只是绘画的,就是下边这两个其实都可以写,那我们这个叫session,咱写一个叫character。Character set一个client是吧,哎,就这个。好,那这时候呢,我们把它的选中呢,做一个执行,哎,你看这时候我们看到的是不是就这个session级别的啊,Session级别的啊,你呢也可以呢,哎,我写到这儿吧,咱们看一下这个global级别的是不是也行啊。哎,来选中的执行,哎也可以是吧,也可以的吧,好这个呢是咱们这个,哎,他这个级别的啊,这个你看这两个不一样,上面这个是MB4,这个是MB3的是吧?OK。行,嗯,然后的话呢,然后的话呢,咱们再看一下这个吧,像针对他的话呢,只是这个session。
23:03
啊,我们就这样。哎,Session啊,这个我们就写一下。哎,这个呢,是来查看当前绘画的这个MY的这个连接ID啊,哎,选中。哎,这块呢,我们做一个执行。哎,是出来了,是不是这个八呀,好,那么这个的话呢,CTRLC一下,你要是用这个哎格global去修饰,那其实呢就不合适啊,因为人家呢只是绘画的系统变量是吧,哎,所以他这是个绘画的,他这就报错了。哎,行,哎,应该能理解,我这里边想表达这个意思啊,好,那么再接着我们去说一下,我要是直接光写一个select,没有写是global还是session,只是这样写了一下,那比如说我们用这个character啊,Set client啊,我们这么找一下,那这个怎么去理解啊。哎,走起,哎这块呢,我们说呢,他是不是先查询。哎,这个叫绘画系统变量对吧。
24:04
哎,然后呢,再查询。哎,这个我们说叫这个全局系统变量。哎,这样。哎,这样一个场景,行,这个呢大家就理解了,那因为呢,我们这是一个是不是叫这个,哎,就是我们既是一个呃绘画系统变量,又是一个全局系统变量,所以这块呢,就以这个绘画的系统变量这个值为准了,啊就是MB3是吧,哎,没问题。好这块呢,相当于我们如何呢,去查看指定的这个系统变量用的叫做select啊。这个两个艾弧,那这个我们就过了,然后接着我们看下一个问题。这个下一个问题我们能够查看是一方面,另外的话呢,我们还可以考虑呢,如何呢去修改是吧,哎,系统变量这个值。啊,这里边提到了,说数据库管理员呢,需要修改性变量的默认值,然后呢,以便呢修改当前会话或者MYSQL服务实例的这个属性特征,那我们如何去修改呢?咱们在装MYSQL服务器的时候呢,其实体现过的一种方式了,我们是不是修改这个配置软件啊。
25:05
没问题吧,诶我们修改好这个配置文件以后呢,大家一定要注意需要重启一下MYSQ的服务啊,因为重启服务呢,它又要重新的去独立配置文件,然后这时候你里边这个新的变量呢,就起作用了。哎,咱们当初呢,在啊,这个大家应该还有印象吧。来找一下啊,嗯,我找谁呢?找咱们C盘下的program data里边的。啊,针对这个。哎,咱们5.7中设置过,是不是卖点N啊。这个里边的,嗯,大概应该是在这个60多行的位置,诶我们是不是设置过,你看这个字符集的事儿是吧?哎,这是它然后还设置过是不是,诶这个相应的两行操作呀,哎,那么这呢,其实就相当于是我们叫系统变量。啊,修改完以后的话呢,我们冲击着服务,那么这时候呢,他就会去读我们的配文件,然后把这个呢,把这个呢,是不是就都读进来了啊,就以我们写的这个为主了,啊就是相当于这样的情况,那么这种呢,修改方式呢,大家可以理解成是不是叫一劳永逸式,哎,只要你改完以后的话呢,那我们只要呢,这个服务重启它都是以你这里边为准。
26:04
对吧,以这个为准,但是它有一个局限性是什么呢?就是你想想我们现在呢,如果这个服务器呢,已经处于运行状态了,你去这里边儿去改还有意义吗。啊,没有意义了,因为你改完之后的话呢,你想我们这个服务器呢,正在运行呢,你这块重启一下,这个成本是不是太高了呀。啊太高了,所以呢,我们就不考虑说在这里边儿呢,去给它去定义了,那怎么办呢,我们就得保证呢,如何在服务器运行期间,咱们可以去修改啊,这呢,我们就用的这叫set指令啊,所以这块呢,我们主要来介绍一下这个第二种方式啊。呃,那么这块修改的话呢,你看我这儿又写了一个方式一和这个方式二。主要呃呃,这个方式一和这个方式二是吧,上下这块呢,是因为是绘画的,还是这个系统级别的啊,还是全局级别的。好,那我们看一下上面这个,嗯,修改这个系统变量的话呢,我们可以用这个set啊,然后两个at for global的方式也可以呢,直接叫set globalbe啊,就是呃,这个是哎两种方式,然后对应的话,你把global呢改成session呢,就是下边这个意思。
27:07
OK吧,好,那下边我们来看一看啊,如何去修改这个系统变量的这个值啊。好,回过来。修改系统变量的值。好,那修改性的变量值,来我们这块去举例啊,这个方式一。哎,方一刚才咱看到了,是不是叫set一下,然后呢,这个两个艾弧叫global。是不是这意思啊,然后呢,Global点啊,比如我们刚才提到了一个叫max啊,是不是connections啊,好,呃,刚才呢,我们去查看一下,咱们这个叫global max。啊,这个global max connections这块呢,是151,相当于默认这个值呢是151,那这块呢,我把它改成是161。哎,改了一下是吧,来,我们走起。改了是吧,改完以后呢,大家你这时候呢,我们再去做一个这个select查看,诶是不是这块已经改成这个161了吧。
28:01
没问题是吧,改成161了,然后呢,这是这个修改的方式一,然后呢,我们再来一个这个方式二,哎,这块呢,也叫这个set,只不过呢,它不是用两艾符了,就是这个它一个关键字了啊,叫做global,然后呢叫做max。哎,Connections,我改成171吧。能理解啊,然后选中呢,我们去执行。然后呢,我们再去查看一下,哎,走起,哎,这时候你看就变成171了。哎,就是171行,那这个171它针对的是咱们讲了,是不是只是针对咱们,呃,当前这一次这个服务是有效的,或者针对当当前咱们这个数据库实力是有效的啊。哎,针对于当前的数据库啊,实例啊是有效的。啊,一旦。哎,我们说这个重启。啊,这个MYSQL服务。啊,是不是就失效了。哎,保存一下,哎,重启卖售后服务呢,我们就失效了,好这块呢,我们就可以呢,去演示一下啊,我们呢就CMD。
29:03
哎,这块呢,我们以管理员身份呢去运行。好,首先呢,我登录一下。啊,MY,咱们这头候呢,是这个MYSQL的这个8.0啊杠U。RP。哎,没问题,哎首先呢,你可以去select一下这个。Version是吧,好8.0的,嗯,行,那当前的话呢,我们已经查看过了啊,咱们在这块跑一下啊,走起是不是171啊好,下面的话呢,我们去这个叫night stop一下。这个懵了哈,咱们这块呢,重启的话呢,不是在这个MYQ这个下边,直接在这写就行是吧,诶net我们去stop一下叫MYS80啊回车。哎,首先呢,我们把这个MYSQL880的这个服务呢,我们给它关掉了,然后我们再去做一个start啊,MYSQL的这个八零好集中起来。好已经可以了,那我这块已经是重启过的,那这时候呢,大家你注意看,我们再去执,呃,再去执行,我们这个叫global max connections来走起。
30:07
好大,你看此时的话呢,是不是又恢复成我们默认的这个151了呀。哎,151啊,这个注意一下这个场景啊,注意这个场景,好这个呢,我们就来说清楚了,这个是针对于我们说这个系统,呃,全局系统变量。全局。哎,系统变量啊,针对他来讲的好,然后下边的话呢,我们来看一下这个,嗯,Session啊。这个在这儿我们再说一下。放到这吧。下边我们来说一下,这个叫绘画。哎,系统变量好,这个呢,同样的也是有两种方式改方式一跟上面一样啊,你把这个global你改成这个session就OK了,我们去set一下,比如说这个叫session。啊,Session点是吧,嗯,我们改谁呢?咱们改一下这个character吧。
31:01
看这个啊。哎,Session character set,我们改一下,它把这个呢改成嗯,咱们先看一下默认值啊,这个是这个session的啊,我们走起是不是这个UTF8MB3是吧,好,我们把这个呢给它改一下啊,比如我们改成嗯,JBK吧。哎,改成JBK了,OK吧。好,那这时候我们做一个执行。修改了,修改完以后的话呢,我们这时候呢,再去做一个查看,哎,走起,诶你看这时候是不是就变成这个GBK了啊没问题,好,然后呢,咱们说这个呢,它是不是既是一个呃绘画级别的,又是一个呃全局级别的是吧?那我们现在呢,通过这个全局级别的这个呢,我们去查看一下,走起。是不是还是U8M4啊。啊,没有问题啊,就是这是你自己会画的,我全局的呢,还是它啊没有问题,好,这个是我们通过这个去修改,然后呢,我们再去set一下啊,哎,再一种方式呢,是不是那叫session第二。啊character,嗯,不是session,点了这个直接session是吧。
32:03
嗯,Carry直接粘过来吧。选择C。啊,这样的方式,这个方式的话呢,是不是也可以去修改啊啊JBK啊就这两个都可以啊,我就不去拿这个去演示了啊好,这个呢是我们说的这个。呃,这个是方式一,这个是方式。二是吧。啊,这种修改好,那么通过方式一也好,还是方式二也好,就修改了,那修改完以后的话呢,我们说它只是针对于咱们当前这一次绘画呢,呃,是有效的。啊,针对当前这一次会画呢,是有效的,你要呃换一次会画它就失效了啊,那换一次会画呢,比如说我们这时候我再去,嗯,不是在这儿了,我们在这儿加一下叫新的连接,你看我们这时候呢,哎,我把这个再去新建一个它的这个连接。啊,可以了是吧,哎,我们新建连接,然后呢,咱们把这个啊,咱们在当前你这次会话当中呢,我是这块呢,查看一下是不是说这个JBK了是吧,我把这个指令呢,我CTRLCL一下,咱们放到这这个新的会话当中。
33:06
啊,这样我们去来做一个执行。好,大家你看是不是还是UTA8MB3啊,哎,这就相当于他们是不同的这个绘画,哎,不同的个绘画啊,哎,那这块我就把这个就关掉了。哎,你这块修改的只是你这个会画级别的这样的一个,呃,字符集啊字符集,哎,我们要把这个关掉了再重启,跟我现在呢,在它没关的情况下再启动一个,其实是一个意思啊,就只要你启动个新的会话呢,我们就还是人家系统默认提供的那个值啊。好,那么通过这个讲解的话呢,大家应该能清楚的事儿啊,就是我们这里边儿列举出来几个事儿,哎,你明确一下这个系统变量了,它的一个分类。啊,明确它的一个分类,然后呢,我们如何去查看指定的系统变量,然后呢,如何去修改系统变量的值啊,这里边儿呢,涉及到的问题呢,就是有全局的,有这个绘画级别的啊,他们这个稍有不同,同时的话呢,他们在什么级别呢,是有效的,这个也不一样啊,针对这个我们把这个笔记也写一下啊,针对于哎,我们说这个当前这个绘画。
34:07
哎,绘画啊是。有效的。啊,一旦呢,我们说这个结束绘画。哎,结束绘画,然后呢,重新建立起来绘画。呃,一旦接入绘画,重新建立起呃新的绘画。呃,新的绘画啊则呃就呃这个活们就这个失效了是吧,也行,或者你就是变成这个默认值了啊就可以了,好,那这块呢,我们把这个系统变量咱们就先说到这。
我来说两句