技术开发 频道

教你调整服务器变量 适应企业个性需求

  【IT168 专稿】不同的企业,对于数据库可能会提出不同的个性化需求。如日期显示的格式等等。为了满足不同企业在这方面的要求,在MySQL数据库中提出了服务器变量的概念。通过对这些变量进行调整,数据库管理员可以建立起一个符合企业实际情况的应用环境。在这里,笔者就结合自己的工作经验,谈谈如何对服务器变量进行调整,以及相关的注意事项。

  一、查看系统现有变量的值

  数据库管理员如果需要对服务器变量进行调整,首先需要对现有的变量以及相关值有所了解。用户可以通过使用命令show variables来查看系统中可用的变量以及默认值。不过系统的变量有200多个,查找起来比较麻烦。为此,用户可以通过使用like查询条件加上通配符来进行快速查找。如下图所示,笔者使用了’date%’,系统就会列出所有以date开头的变量名。这与SQL语句中的查询条件非常的类似。

调整服务器变量适应企业个性化需求

  使用通配符与Like关键字可以帮助数据库管理员迅速定位相关的变量。不过在使用通配符时,需要注意,两边的单引号不能够忘记。否则的话,系统就会报错。其次,在这个命令行环境下,对于大小写是不敏感的。也就是说,’date%’与’Date%’两个是等价的。这对于一些大小写不分的数据库管理员来说,是一个不错的特性。不过在输入条件语句时,有一个细节需要注意,即空格。在查询时,系统不会自己过滤空格。’date%’与’ date%’两个语句有什么区别吗?粗粗的一看,好像是相同的。其实两个是不同的内容。后面一个在date前面有一个空格,而第一个没有。此时从数据库中得到的结果也是截然相反。由于系统变量前面都没有空格,所以采用后面一个语句,将查不到任何可用的变量。为此在查询时,需要注意空格对查询语句的影响。

  二、区分全局变量与会话变量

  在开发环境中,变量一般会有全局变量与局部变量的区分。两者核心的差异就是作用域不同。对于MySQL数据库来说,也有这方面的定义。MySQL数据库的变量可以分为全局变量与会话变量。两者的主要区别也在于作用域的不同。

  全局变量,顾名思义,会影响到服务器的全局操作。在数据库服务器启动的过程中,系统会将所有全局变量初始化为默认值。当然,数据库管理员可以根据需要,在选型文件或者命令行中指定相关的选项来更改这些默认值。即使在服务器启动之后,数据库管理员仍然可以通过执行Set Global 变量名的方式来更改动态全局变量。

  会话变量只是针对某个特定的会话有效,而不会对其他会话产生影响。服务器还会为每个客户端连接维护会话变量。在连接时,如果没有为某个特定的会话设置值的话,系统会用全局变量来初始化会话变量。同样,用户也可以通过Set Session 变量名来更改动态会话变量。

  在对全局变量或者会话变量进行更改时,需要注意权限问题。如果对全局变量进行更改,则需要注意,用户必须要有Super权限。但是如果对会话变量进行更改的话,则默认情况下不需要特殊权限。也就是说,用户可以更改自己会话的变量,但是不能够更改其他客户的会话变量。不过通常情况下,并不建议用户更改相关的会话变量。

0
相关文章