MYSQL服务器系统变量的使用

可能大家平时都经常听到一个词语叫做MySQL服务器,但是MySQL服务器到底是什么呢,可能知道的人就不是很多了,本篇博客的主要目的也就是对MySQL服务器进行一个初步的认识和解读

MySQL服务器简介

通常我们所说的MySQL服务器指的是mysqld程序(d--deamon也就是守护进程)当mysqld运行起来后mysql就可以对外提供服务了。

以下是获取一些mysql服务器信息的基础命令

查看MySQL服务器在运行时,系统变量的值 ,实际运行过程中会打印很多内容,想查询单一内容在查询结果后面加上like即可。

show variables;

查看服务器在运行时的一些统计和状态指示器

show status;

使用系统变量

我们为什么需要使用系统变量呢,首先系统变量都是有一个默认值的,但是在有一些业务场景下,这些默认值可能和我们实际硬件和CPU这些的契合度不是非常好,举个很简单的栗子蛤,就比如我们在实际的业务过程中,有一个业务场景是随着时间的增加,业务的数据量也会不断地增加,这是我们可能就需要更多的硬件设备了,但是我们可以通过使用系统变量,来让MySQL分配更多的内存和硬盘。所有使用系统变量可以满足不同场景下的需求。

比如蛤,我们平时电脑上面的MySQL就只会占用一点内存,要是实际环境也像咱们电脑上这样的话,那过不了多久,就必须得增加新的电脑,所以我们就可以使用系统变量的设置,来控制MySQL使用尽可能多的内存和硬盘。以此来达到合理分配硬件设施的目的。

下面是一些关于使用系统变量的注释

  1. 设置系统变量的语法与命令选项的语法是相同的,指定变量名称时,破折号和下划线是可以互换使用的, --general-log=ON 和 --general_log=ON 是等价的
  2. 当使用选项设置一个数值的变量时,可以带有后缀K,M,G(大小写都行) 来表示1024,1024^2 或 1024^3 MySQL8,0,14开始后,后缀也可以使用T,P,E来表示1024^4,1024^5,1024^6

为服务器指定256kb的排序缓冲区大小和1GB的最大数据包大小 

mysql --sort-buffer-size=256K --max-allowed-packet=1G
  1.  系统变量有2个作用域,一个是Global(全局)和Session(会话) 其中全局变量会影响整个服务器的操作,而会话(Session)则只会影响各个客户端的操作,同时给定的系统变量可以同时又全局值和会话值                                                                                                                                                                                                                                                                             服务器启动时,会将灭个全局变量初始化并设置默认值,具体的值可以通过命令行或者选项文件修改(推荐选项文件)                                                                                                                                                                                                                                                           服务器为每个客户端维护一组Session变量,在客户端连接时使用相应全局变量的值初始化
  2. 大部分的系统变量是动态的,在服务器的运行过程中可以通过SET语句来进行动态更改,并且无需停止和重启服务器。在服务器运行的过程中,使用SET语句设置系统变量,需要指定作用域(或者前面加上@@修饰符),然后指定系统变量的名称,名称必须使用下划线而不是破折号

例如,设置全局系统变量最大连接数为1000

需要在mysql服务器中设置

mysql> SET GLOBAL max_connections = 1000;

mysql> SET @@GLOBAL.max_connections = 1000;

具体有哪些命令可以去官网或者其他博客瞅瞅,这里不想罗列了。

将全局系统变量持久化到mysqld-auto.cnf文件 (mysqld-auto.cnf这个文件也在\lib\mysql中的,但是这个文件是默认不存在的,在使用了SET PERSIST语句之后默认创建出来,下次服务器重启时,就会对文件进行读取,作为启动参数)

(PERSIST表示持久化的同时设置全局变量的值)

mysql> SET persist max_connections = 1000;

mysql> SET @@PERSIST.max_connections = 1000;

同时想要删除持久化语句

reset persist if exists 变量名

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值