MySQL变量类型及变量设置
MySQL变量类型
MySQL通过变量来定义当前服务器的配置,保存服务器的运行状态信息等。我们可以通过手动更改变量的值来配置MySQL或者查询变量的值来获得MySQL的当前状态信息。
MySQL的变量类型可以从以下下两种方式划分:
根据变量修改的方式
动态变量:可以在MySQL运行时调整其指,并立即生效;
静态变量:需要在配置文件中修改,重启服务后生效;
根据变量的生效范围
全局变量:服务级别的设定,对整个服务生效;
会话变量:仅对当前会话生效,其他会话和新会话不受影响;会话结束值即销毁;
查看MySQL的变量
查看可以在配置文件中定义的变量:
shell> mysqld --help --verbose
查看MySQL的服务当前运行时的变量:
mysql> SHOW [{GLOBAL|SESSION}] VARIABLES [LIKE '']; mysql> SELECT @@{GLOBAL|SESSION}.VARIABLE_NAME; mysql> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='VARIABLE_NAME'; mysql> SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='VARIABLE_NAME';
修改MySQL的变量
通过配置文件修改
通过配置文件修改,只需要在配置文件中指定变量命和值,重启服务即可,例如:
shell> vim /etc/my.cnf
innodb_file_per_table = 1
shell> service mysqld restart
通过配置文件修改的变量会永久生效。
运行时直接修改
运行时修改使用SET命令,并指定变量类型(全局或会话)给变量赋值即可,例如:
mysql> SET GLOBAL innodb_file_per_table = 1 mysql> SET SESSION innodb_file_per_table = 1
需要注意的是,全局变量中运行时修改的值不会永久生效,重启后会失效,如果是会话变量的话,会话断开即失效。