一句话:数据库高深莫测!
mysql相关的变量介绍:
ExpandedBlockStart.gif 相关变量
 
     
mysql服务器的系统变量,mysql server system viriables,其实我更愿意叫它为“系统参数”!

mysql服务器维护着2种mysql的系统参数(系统变量):全局变量( global variables)和会话变量(session variables)。它们的含义与区别如其各占的名称所示,session variables是在session级别的,对其的变更只会影响到本session; global variables是系统级别的,对其的变更会影响所有新session(变更时已经存在session不受影响)至下次mysql server重启动。注意它的变更影响不能跨重启,要想再mysql server重启时也使用新的值,那么就只有通过在命令行指定变量选项或者更改选项文件来指定,而通过SET变更是达不到跨重启的。

每一个系统变量都有一个默认值,这个默认值是在编译mysql系统的时候确定的。对系统变量的指定,一般可以在server启动的时候在命令行指定选项或者通过选项文件来指定,当然,大部分的系统变量,可以在系统的运行时,通过set命令指定其值。
 
用户级别的变量:
 
ExpandedBlockStart.gif 代码
 
     
可以先在用户变量中保存值然后在以后引用它;这样可以将值从一个语句传递到另一个语句。用户变量与连接有关 。也就是说,一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。

用户变量的形式为@var_name ,其中变量名var_name 可以由当前字符集的文字数字字符、‘. ’、‘_ ’和‘$ ’组成。 默认字符集是cp1252 (Latin1) 。可以用mysqld 的 -- default - character - set 选项更改字符集。参见5. 10 .1节,“数据和排序用字符集” 。用户变量名对大小写不敏感。

设置用户变量一个途径是执行SET 语句:

SET @
var_name之类的
 
 
来查看哪些变量是gobal 变量,哪些是session级别的变量等等.
 
 
ExpandedBlockStart.gif 代码
 
     
使用SHOW VARIABLES语法来显示变量值
SHOW GLOBAL VARIABLES [LIKE ' pattern ' | WHERE expr] 显示global 变量值

SHOW SESSION VARIABLES [LIKE ' pattern ' | WHERE expr] 显示session变量值

SHOW VARIABLES [LIKE ' pattern ' | WHERE expr] 显示session变量值

eg:
mysql > show global variables like ' %table_type% ' ;
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| table_type | InnoDB |
+---------------+--------+
1 row in set ( 0.00 sec)

mysql > show session variables like ' %table_type% ' ;
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| table_type | MyISAM |
+---------------+--------+
1 row in set ( 0.00 sec)

mysql > show variables like ' %table_type% ' ;
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| table_type | MyISAM |
+---------------+--------+
1 row in set ( 0.00 sec)

 
 
注意的一个问题:>>
对于 SHOW VARIABLES ,如果不指定 GLOBAL 、SESSION 或者 LOCAL , MySQL 返回 SESSION 值。