龙空技术网

mysql中的系统变量

不良人 29

前言:

眼前小伙伴们对“mysql数据库属性”大概比较重视,同学们都需要知道一些“mysql数据库属性”的相关资讯。那么小编同时在网上网罗了一些关于“mysql数据库属性””的相关文章,希望姐妹们能喜欢,同学们一起来了解一下吧!

使用“show global variables;”命令即可查看MySQL服务器内存中所有的全局系统变量信息(有393个之多)。

使用“show session variables;”命令即可查看与当前会话相关的所有会话系统变量以及所有的全局系统变量(有405个之多),此处session关键字可以省略。也就是说,使用“show variables;”命令或者使用“show session variables;”命令,查看的是与该会话相关的所有会话系统变量以及所有全局系统变量(一共有405个之多)。

如果需要查看某个具体的系统变量值,可以在上述命令后面加上“like”关键字,并且还可以在“like”关键字后添加通配符(%或者_)进行模糊查询。

在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';

注意:使用“show session variables like”命令(或者省略session关键字)查看会话系统变量时,在返回结果中,首先返回的是会话系统变量的值;如果该会话系统变量不存在,则返回全局系统变量的值;如果全局系统变量也不存在,则返回空结果集。

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

show session variables like 'pseudo_thread_id';

show variables like 'pseudo_thread_id';

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

场景描述4:对MySQL中既是全局系统变量,又是会话系统变量的系统变量进行操作。

步骤1:打开MySQL客户机A,执行下面的MySQL命令。第一条MySQL命令负责查看会话系统变量character_set_client的值。第二条MySQL命令负责将会话系统变量character_set_client的值设置为latin1,执行结果如图2-68所示。

show variables like 'character_set_client';

set character_set_client = latin1;

有些时候,数据库管理员需要修改系统变量的默认值,以便修改当前会话或者MySQL服务实例的属性、特征,可以使用下面3种方法修改系统变量的默认值。

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

方法二:最为简单的方法是通过修改MySQL配置文件,继而修改MySQL系统变量的值(该方法需要重启MySQL服务)。

方法三:在MySQL服务运行期间,使用“set”命令重新设置系统变量的值。如果将一个系统变量的值设置为默认值,可以使用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

注意:具备Super权限的账户才能设置全局系统变量

如果需要重新设置会话系统变量(例如pseudo_thread_id)的值,可以使用下面4种方法

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_bin、tmpdir、version、datadir),在 MySQL 服务实例运行期间它们的值不能动态修改,不能使用“set”命令进行重新设置,这种变量称为“静态变量”,数据库管理员可以使用方法一或者方法二对静态变量的值重新设置。

标签: #mysql数据库属性