系统变量,就是Mysql针对本身程序运行的一些参数配置。例如经过系统变量咱们能够指定诸如容许同时连入的客户端数量、客户端和服务器通讯方式、表的默认存储引擎、查询缓存的大小等设置项。mysql
注:程序员
命令:SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式](不写GLOBAL或SESSION等同于SESSION);sql
mysqld --default-storage-engine=MyISAM --max-connections=10
,就是配置默认存储引擎为MyISAM,最大链接数为10。注:在类Unix系统中,启动脚本有mysqld、mysqld_safe、mysql.server,其中mysqld表明直接启动mysql服务器程序,mysqld_safe会在此基础上启动一个监控进程,它会将服务器程序的出错信息和其余诊断信息重定向到某个文件中,产生出错日志,mysql.server也能够启动Mysql,使用命令mysql.server start
,效果跟mysqld_safe同样,mysqld_multi是用于单机多个mysql服务端进程的启动,中止脚本。缓存
每一个MySQL程序都有许多不一样的选项。例如,使用mysql --help能够看到mysql程序支持的启动选项,mysqld_safe --help能够看到mysqld_safe程序支持的启动选项。查看mysqld支持的启动选项有些特别,须要使用mysqld --verbose --help。服务器
配置文件形如:命令行
[server] (具体的启动选项...) [mysqld] (具体的启动选项...) [mysqld_safe] (具体的启动选项...) [client] (具体的启动选项...) [mysql] (具体的启动选项...) [mysqladmin] (具体的启动选项...)
像这个配置文件里就定义了许多个组,组名分别是server、mysqld、mysqld_safe、client、mysql、mysqladmin。每一个组下边能够定义若干个启动选项。日志
如在server组下面配置:code
[server] default-storage-engine=MyISAM max-connections=10
表示默认存储引擎为MyISAM,最大链接数为10。server
命令: SET [GLOBAL|SESSION] 系统变量名 = 值 或 SET [@@(GLOBAL|SESSION).]系统变量名 = 值(不写GLOBAL或SESSION等同于SESSION);进程
例如:
语句一:SET GLOBAL default_storage_engine = MyISAM;
语句二:SET @@GLOBAL.default_storage_engine = MyISAM;
注:若是某个客户端改变了某个系统变量在GLOBAL
做用范围的值,并不会影响该系统变量在当前已经链接的客户端做用范围为SESSION
的值,只会影响后续连入的客户端在做用范围为SESSION
的值。
MySQL服务器程序中维护了好多关于程序运行状态的变量,它们被称为状态变量,因为状态变量是用来显示服务器程序运行情况的,因此它们的值只能由服务器程序本身来设置,咱们程序员是不能设置的。与系统变量相似,状态变量也有GLOBAL和SESSION两个做用范围的。比方说Threads_connected表示当前有多少客户端与服务器创建了链接,Handler_update表示已经更新了多少行记录。
SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式](不写GLOBAL或SESSION等同于SESSION;