在 MySQL 数据库,变量分为系统变量和用户自定义变量。系统变量以 @@ 开头,用户自定义变量以 @ 开头。

服务器维护着两种系统变量,即全局变量(GLOBAL VARIABLES)和会话变量(SESSION VARIABLES)。全局变量影响 MySQL 服务的整体运行方式,会话变量影响具体客户端连接的操作。

每一个客户端成功连接服务器后,都会产生与之对应的会话。会话期间,MySQL 服务实例会在服务器内存中生成与该会话对应的会话变量,这些会话变量的初始值是全局变量值的拷贝。

查看系统变量

可以使用以下命令查看 MySQL 中所有的全局变量信息。

SHOW GLOBAL VARIABLES;

可以使用以下命令查看与当前会话相关的所有会话变量以及全局变量。

SHOW SESSION VARIABLES;

其中,SESSION 关键字可以省略。

MySQL 中的系统变量以两个“@”开头。

@@global 仅仅用于标记全局变量;

@@session 仅仅用于标记会话变量;

@@ 首先标记会话变量,如果会话变量不存在,则标记全局变量。

MySQL 中有一些系统变量仅仅是全局变量,例如 innodb_data_file_path,可以使用以下 3 种方法查看:

SHOW GLOBAL VARIABLES LIKE 'innodb_data_file_path';

SHOW SESSION VARIABLES LIKE 'innodb_data_file_path';

SHOW VARIABLES LIKE 'innodb_data_file_path';

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

SHOW SESSION VARIABLES LIKE 'pseudo_thread_id';

SHOW VARIABLES LIKE 'pseudo_thread_id';

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

SHOW SESSION VARIABLES LIKE 'character_set_client';

SHOW VARIABLES LIKE 'character_set_client';

此时查看全局变量的方法如下:

SHOW GLOBAL VARIABLES LIKE 'character_set_client';

设置系统变量

可以通过以下方法设置系统变量:

修改 MySQL 源代码,然后对 MySQL 源代码重新编译(该方法适用于 MySQL 高级用户,这里不做阐述)。

在 MySQL 配置文件(mysql.ini 或 mysql.cnf)中修改 MySQL 系统变量的值(需要重启 MySQL 服务才会生效)。

在 MySQL 服务运行期间,使用 SET 命令重新设置系统变量的值。

服务器启动时,会将所有的全局变量赋予默认值。这些默认值可以在选项文件中或在命令行中对执行的选项进行更改。

更改全局变量,必须具有 SUPER 权限。设置全局变量的值的方法如下:

SET @@global.innodb_file_per_table=default;

SET @@global.innodb_file_per_table=ON;

SET global innodb_file_per_table=ON;

需要注意的是,更改全局变量只影响更改后连接客户端的相应会话变量,而不会影响目前已经连接的客户端的会话变量(即使客户端执行 SET GLOBAL 语句也不影响)。也就是说,对于修改全局变量之前连接的客户端只有在客户端重新连接后,才会影响到客户端。

客户端连接时,当前全局变量的值会对客户端的会话变量进行相应初始化。设置会话变量不需要特殊权限,但客户端只能更改自己的会话变量,而不能更改其它客户端的会话变量。设置会话变量的值的方法如下:

SET @@session.pseudo_thread_id=5;

SET session pseudo_thread_id=5;

SET @@pseudo_thread_id=5;

SET pseudo_thread_id = 5;

如果没有指定修改全局变量还是会话变量,服务器会当作会话变量来处理。比如:

SET @@sort_buffer_size = 50000;

上面语句没有指定是 GLOBAL 还是 SESSION,服务器会当做 SESSION 处理。

使用 SET 设置全局变量或会话变量成功后,如果 MySQL 服务重启,数据库的配置就又会重新初始化。一切按照配置文件进行初始化,全局变量和会话变量的配置都会失效。

MySQL 中还有一些特殊的全局变量,如 log_bin、tmpdir、version、datadir,在 MySQL 服务实例运行期间它们的值不能动态修改,也就是不能使用 SET 命令进行重新设置,这种变量称为静态变量。数据库管理员可以使用前面提到的修改源代码或更改配置文件来重新设置静态变量的值。

mysql 系统变量_MySQL系统变量(查看和修改)相关推荐

  1. mysql session变量_mysql 系统变量和session变量

    mysql系统变量包括全局变量(global)和会话变量(session),global变量对所有session生效,session变量包括global变量.mysql调优必然会涉及这些系统变量的调整 ...

  2. mysql 不需要@的变量_mysql参数变量

    mysql服务器的系统变量,mysql server system viriables,其实我更愿意叫它为"系统参数"! 每一个系统变量都有一个默认值,这个默认值是在编译mysql ...

  3. mysql负变量_MySQL的变量

    [1]系统变量 系统定义好的变量,大部分时候用户根本不需要使用系统变量.系统变量是用来控制服务器表现的.如:autocommit,auto_increment_increment等. ① 查看系统变量 ...

  4. mysql声明存储过程_MySQL 声明变量及存储过程分析

    声明变量 设置全局变量 set @a='一个新变量'; 在函数和储存过程中使用的变量declear declear a int unsigned default 1; 这种变量需要设置变量类型 而且只 ...

  5. mysql 网站 数据库_mysql系统数据库

    mysql系统数据库主要存储了一些存储MySQL服务的系统信息表.一般情况下mysql库的表都是MYASIM引擎,除非个别情况.mysql库的表的作用大致可以分为以下几类: (1)授权系统表 (2)系 ...

  6. mysql 生明变量_mysql中变量的使用

    4.4.1 局部变量 局部变量是用户可自定义的变量,它的作用范围仅在程序内部.在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用.局部变量必须以"@"开头,而 ...

  7. mysql怎么看历史最高连接数_MySQL数据库怎么查看和修改最大连接数

    MySQL数据库怎么查看和修改最大连接数 发布时间:2020-05-30 01:35:22 来源:亿速云 阅读:210 作者:鸽子 1.查看最大连接数mysql> show variables ...

  8. Mysql基础知识:创建、查看、修改和删除表

    Mysql 创建.查看.修改和删除表 1. 创建表 创建表的语法形式: CREATE TABLE 表名 ( 属性名 数据类型 约束条件,属性名 数据类型 约束条件,...) ENGINE=存储引擎名 ...

  9. mysql系统变量_MySQL系统变量

    @v是用户自定义的变量set @a="1" @@是mysql系统变量select @@version_comment, @@global.xxxx, @@session.xxxx, ...

  10. mysql系统变量_MySQL 系统变量(system variables)

    3.全局与会话级别设置示例 --如何设置隔离级别 mysql> help isolation Name: 'ISOLATION' Description: Syntax: SET [GLOBAL ...

最新文章

  1. SpringBoot使用prometheus监控
  2. PPT怎么在线转视频?
  3. .htaccess跳转https
  4. git 查看自己的用户名和邮箱
  5. 线程+urllib下载互联网图片的一个示例
  6. LINUX上,2080/1080卡不要混插
  7. 在ubuntu 20.04 上 安装 onnxruntime CUDA
  8. Tomcat设置编码方式
  9. matlab绘制二元一次函数图像_二元一次函数曲线拟合的Matlab实现.pdf
  10. android 仿饿了么地图,微信小程序仿饿了么地址定位、筛选与回传
  11. OpenNESS OpenVINO Demo 部署
  12. linux 清理垃圾指令,Linux清理系统垃圾
  13. 使用python requests 爬取妹子图网站图片
  14. Java里的char类型能不能存储一个中文字符?
  15. 滴滴十大技术方向开源项目出炉!有点牛啊!
  16. 腾讯SOSO问问 今日登场
  17. 宜信实习经历: “明年暑假,我还要再来”
  18. R与结构方程模型(2):潜变量
  19. gazebo添加模型仿真
  20. 计算机简历封面制作教程,计算机应用 个人简历封面制作 制作个人简历封面教案.doc...

热门文章

  1. 【图像分割】基于matlab C-V模型水平集图像分割【含Matlab源码 1456期】
  2. php操作mysql数据_详解PHP操作MySQL数据库
  3. 决策树人工智能预测模型_部署和服务AI模型进行预测的10种方法
  4. 吃豆人 博弈_强化吃豆人
  5. 用python代码将原图转化为手绘图
  6. 如何用stata画莫兰散点图_图说meta十四:漏斗图暨Stata软件使用方法简介
  7. jq监听子元素被点击_jQuery怎么实现当前被点击元素的父级下的某个元素显示出来了?...
  8. codeblock无法新建工程_【工程前沿】专业专注凸显市政“制造” ——八公司太原南站东广场配套路网工程施工纪实...
  9. python调用dll时路径问题_使用ctypes(python)在带括号的路径中加载dll时出错
  10. 'gbk' codec can't encode character解决方法