MySQL系统变量

在数据库中,变量分为系统变量(以‘@@’开头)以及用户自定义变量。系统变量分为全局系统变量以及会话系统变量,静态变量属于特殊的全局系统变量。

全局系统变量(global)和会话系统变量(session),有时也把全局系统变量称为全局变量,把会话系统变称为local变量或者系统会话变量。Mysql服务成功启动后,如果没有mysql客户机连接mysql服务器,那么mysql服务器内存中的系统变量全部是全局系统变量。

每个mysql客户机成功连接mysql服务器后,都会产生与之对应的会话。会话期间,没有mysql服务实例会在mysql服务器内存中生成与该会话对应的会话系统变量,这些会话系统变量的初始值是全局系统变量值的复制。由于各会话在会话期间所做的操作不尽相同,为了标记各个会话,会话系统变量又新增12个变量,例如,会话系统变量pseudo_thread_id用于标记当前会话的mysql连接ID。

会话系统变量的特点在于,它仅仅用于定义当前会话的属性,会话期间,当前会话对某个会话系统变量值得修改,不会影响其他会话同一个会话系统变量的值,即MySQL客户机1的会话系统变量值不会被MySQL客户机2看到或修改;MySQL客户机1关闭或者MySQL客户机1与服务器断开连接后,与MySQL客户机1相关的所有会话系统变量将自动释放,以便于节省MySQL服务器的内存。

全局系统变量的特点在于,它是用于定义MySQL服务实例的属性、特点,会话1对某个全局系统变量值得修改会导致会话2中同一个全局系统变量值得修改。

查看系统变量值“show global variables;”命令即可查看全局系统变量值;使用“show session variable;”即可查看与当前会话相关的所有会话系统变量以及所有的全局系统变量。

在MySQL中,有一些系统变量仅仅是会话系统变量。例如,MySQL连接ID会话系统变量pseudo_thread_id,可以使用下面两种方法查看该会话系统变量的值。

Show session variables like ‘pseudo_thread_id’;

Show  variables like ‘pseudo_thread_id’;

在MySQL中,有一些系统变量即是全局系统变量,又是会话系统变量。例如,系统变量character_set_client既是全局系统变量,又是会话系统变量。

备注:作为MySQL编码规范,MySQL中的系统变量以两个“@”开头,其中“@@global”仅仅用于标记全局系统变量,“@@session”仅仅用于标记会话系统变量。“@@”首先标记会话系统变量,如果会话系统变量不存在,则标记全局系统变量。例如,查看InnoDB_data_file_path而言,可以使用“select  @@global.innodb_data_file_path;”。

设置系统变量的值

方法一:修改MySQL源代码,然后对MySQL配置文件,继而修改MySQL系统变量的值(适用于MySQL高级用户);

方法二:通过修改MySQL配置文件,继而修改MySQL系统变量的值(需要重新启动MySQL服务);

方法三:在MySQL服务运行期间,使用“set”命令重新设置系统变量的值,如果将一个系统值设置为MySQL默认值,可以使用default关键字;例如,set @@global.innodb_file_per_table=default;注意set命令不会导致my.ini配置文件的内容发生变化。

如果重新设置全局系统变量值(例如InnoDB_file_per_table)的值,可以使用下面两种方法(global关键字不能省略)

Set @@global.innodb_file_per_table=ON;

Set   global.innodb_file_per_table=ON;

重新设置会话系统变量(session)的值,有四种方法:

Set @@session.pseudo_thread_id=5;

Set  session pseudo_thread_id=5;

Set @@pseudo_thread_id=5;

Set pseudo_thread_id=5;

对于大部分的系统变量而言,可以在MySQL服务运行期间通过“set”命令重新设置其值。在MySQL中还有一些特殊的全局变量(例如log_in  tmpdir  version  datadir),在MySQL服务实例运行期间它们的值不能动态修改,不能使用set命令进行重新设置的,这种变量称为静态变量,数据库管理员可以使用方法一或方法二对静态变量的值重新设置。

MySQL系统变量,布布扣,bubuko.com

时间: 2024-08-06 19:59:28

MySQL系统变量的相关文章

MySQL 系统变量(system variables)

MySQL系统变量(system variables)实际上是一些系统参数,用于初始化或设定数据库对系统资源的占用,文件存放位置等等.这些个系统变量可以分为全局以及会话级别层面来修改,有些也可以进行动态修改.本文主要介绍了系统变量的一些概念以及如何设置查看这些系统变量. 1.什么是系统变量   系统变量实际上用于控制数据库的一些行为和方式的参数.比如我们启动数据库的时候设定多大的内存,使用什么样的隔离级别,日志文件的大小,存放位置等等一系列的东东.当然我们数据库系统启动后,有些系统变量(参数)也

mysql系统变量查询

mysql系统变量包括全局变量(global)和会话变量(session),global变量对所有session生效,session变量包括global变量.mysql调优必然会涉及这些系统变量的调整,所以我们首先得会查询系统变量. 1. 查询全局变量:show global variables \G; 2. 查询会话变量:show session variables \G;或show variables: 可以看到,变量表包含variable_name,value两个字段,所以可以通过这两个字

mysql 系统变量和session变量

mysql系统变量包括全局变量(global)和会话变量(session),global变量对所有session生效,session变量包括global变量.mysql调优必然会涉及这些系统变量的调整,所以我们首先得会查询系统变量. 1. 查询全局变量:show global variables \G; 2. 查询会话变量:show session variables \G;或show variables: show session variables where variable_name l

MySQL 系统变量和系统状态参数详解

1.查询缓存相关 mysql> show variables like '%query_cache%'; +------------------------------+----------+ | Variable_name                | Value    | +------------------------------+----------+ | have_query_cache             | YES      | | query_cache_limit  

mysql 系统变量

show variables; ---------------------------------+--------------------------------------------------------+ | Variable_name | Value | +---------------------------------+--------------------------------------------------------+ | auto_increment_increm

mysql show variables系统变量详解

mysql系统变量详解 mysqld服务器维护两种变量.全局变量影响服务器的全局操作.会话变量影响具体客户端连接相关操作. 服务器启动时,将所有全局变量初始化为默认值.可以在选项文件或命令行中指定的选项来更改这些默认值.服务器启动后,通过连接服务器并执行SET GLOBAL var_name语句可以更改动态全局变量.要想更改全局变量,必须具有SUPER权限. 服务器还为每个客户端连接维护会话变量.连接时使用相应全局变量的当前值对客户端会话变量进行初始化.客户可以通过SET SESSION var

MySQL的启动选项和系统变量该如何配置?

MySQL的配置信息可以通过两种方式实现,一种是命令行形式,在启动MySQL服务时后边带上相关配置参数,此种方式会在MySQL重启后失效.另外一种是通过写入配置文件,如my.cnf,启动或者重启MySQL服务都会生效,此种方式是永久生效. 启动选项 命令行 在MySQL服务命令启动时,带上配置参数 命令格式: 启动命令 --启动选项1[=值1] --启动选项2[=值2] ... --启动选项n[=值n] 例如: mysqld --default-storage-engine=MyISAM //设

OS 系统下安装MySql 配置MySql环境变量

学习Hive需要,闲话不说 本文的内容: 下载Mysql for Mac 下载Mysql Workbench 安装 Mysql 和 Mysql Workbench 配置Mysql在OS 系统上的环境变量 进入MySql 1.下载Mysql for Mac      下载地址:http://dev.mysql.com/downloads/ 注意,下载末尾是 .dmg格式的文件,这要下错..... 2.下载Mysql Workbench   下载地址:http://dev.mysql.com/dow

MySQL用户和系统变量

--MySQL用户和系统变量-----------------------------2014/05/19用户变量可以先在用户变量中保存值然后在以后引用它:这样可以将值从一个语句传递到另一个语句.用户变量与连接有关.也就是说,一个客户端定义的变量不能被其它客户端看到或使用.当客户端退出时,该客户端连接的所有变量将自动释放.用户变量的形式为@var_name,其中变量名var_name可以由当前字符集的文字数字字符.'.'.'_'和'$'组成. 默认字符集是cp1252 (Latin1).可以用m