软件环境为ubuntu15.10,MySQL版本5.6.31-0ubuntu0.15.10.1-log
MySQL数据库启动时会去读取参数配置文件,以此来确定一些初始化参数,但是此参数配置文件不是必须的,即没有此文件MySQL的服务也能启动,而这时使用的是在MySQL编译时执行的参数的默认值。
所有的参数都是以键值对的形式出现的,通过show variables
命令列出所有的变量参数,也可以通过show variables like 'var_name'
的方式选择指定的参数,里面可以使用%
来完成模糊匹配。
从数据表information_schema.global_variables
也可以直接查询所用到的参数变量,表结构如下:
属性数量如下:
当软件环境为windows 10的操作系统,5.7.12-log版本的MySQL数据库时,如果直接查询information_schema.global_variables
,会报如下错误:
更改参数set @@global.show_compatibility_56 = 1
之后,查询结果如下:
对于MySQL数据库中参数的类型有两种:
- 静态参数:在MySQL服务运行的过程中不能修改,即只读,如果修改则会出现如下错误:
- 动态参数:可以在MySQL服务运行的过程中进行修改;
- 会话级别:修改的影响范围只是针对该会话,如果再有一个客户端和服务器建立连接,则该属性不会造成影响;
- 修改使用:
- set session var_name = value;
- set @@session.var_name = value;
- 全局级别:修改的影响范围是针对整个服务的生命周期;
- 修改使用:
- set global var_name = value;
- set @@global.var_name = value;
- 会话级别:修改的影响范围只是针对该会话,如果再有一个客户端和服务器建立连接,则该属性不会造成影响;
对动态参数的修改都是针对此次服务的生命周期,而不会对参数配置文件进行修改,如果关闭该服务进行重启,那么所有的修改都会消失,因为它要读取配置文件中的属性参数作为自己的重启配置信息,如果想做到完全的“全局修改”,必须修改参数配置文件。