参考文献

  • MySQL是咋样运行的

系统变量

通过启动选项设置

  • 大部分系统变量都可以通过启动服务器时设置启动选项来设置.

    1
    mysqld --default-storage-engine=MyISAM --max-connections=10

通过配置文件添加启动项

1
2
3
[server]
default-storage-engine=MyISAM
max-connections=10

服务器程序运行过程中设置

  • MySQL支持两种形式的变量:SESSION以及GLOBAL

    • GLOBAL(全局范围): 影像服务器的整体操作.具有GLOBAL作用范围的系统变量可以称为全面变量.

    • SESSION(会话范围): 影像某个客户端连接的操作.具有SESSION作用范围的系统变量可以称为会话变量.

      1
      2
      3
      4
      SET [GLOBAL|SESSION] 系统变量名 = 值

      # 或者
      SET [@@(GLOBAL|SESSION).]系统变量名 = 值
    • 变量值还原为默认值:set [session] var_name = DEFAULT

  • 查看不同作用范围的系统变量

    1
    SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配模式];
  • 注意: 如果某个客户端改变了某个系统变量的GLOBAL作用范围的值,并不会影像该系统变量在当前已经连接的客户端作用范围为SESSION的值,只会影响后续连入的客户端作用范围为SESSION的值.

状态变量

1
2
3
4
5
6
7
8
9
10
11
12
SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配模式]

mysql> show status like 'thread%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 0 |
| Threads_connected | 6 |
| Threads_created | 6 |
| Threads_running | 2 |
+-------------------+-------+
4 rows in set (0.00 sec)