MySQL 5.5的服务器变量是控制数据库服务运行参数的核心配置项,覆盖了内存使用、连接限制、查询处理、日志管理等多个维度的设置,合理调整这些变量可以适配不同的业务场景需求。

MySQL 5.5服务器变量的基础分类
按照变量的作用范围和生效时机,MySQL 5.5的服务器变量可以分为全局变量和会话变量两类:
- 全局变量:作用于整个MySQL服务实例,修改后会影响所有新的客户端连接,部分全局变量修改后需要重启服务才能生效,变量信息存储在全局系统表中。
- 会话变量:仅作用于当前客户端连接,会话变量的值默认继承全局变量的当前值,当前连接修改会话变量不会影响其他连接和全局配置。
查看MySQL 5.5服务器变量的方法
查看所有服务器变量
可以通过SHOW VARIABLES语句查看当前实例的所有服务器变量,该语句默认返回全局和会话作用域的所有变量:
-- 查看所有服务器变量 SHOW VARIABLES; -- 查看指定前缀的变量,比如查看所有字符集相关变量 SHOW VARIABLES LIKE 'character%';
通过系统表查询变量
MySQL 5.5提供了information_schema数据库下的GLOBAL_VARIABLES和SESSION_VARIABLES表,可以查询对应作用域的变量:
-- 查询全局变量 SELECT * FROM information_schema.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'max_connections'; -- 查询当前会话变量 SELECT * FROM information_schema.SESSION_VARIABLES WHERE VARIABLE_NAME LIKE 'sql_mode';
修改MySQL 5.5服务器变量的方法
运行时动态修改
对于支持动态修改的变量,可以通过SET语句在运行时调整,修改后无需重启服务立即生效,但是需要注意作用域:
-- 修改全局变量,需要SUPER权限,影响后续新连接 SET GLOBAL max_connections = 200; -- 修改当前会话变量,仅影响当前连接 SET SESSION sql_mode = 'STRICT_TRANS_TABLES';
需要注意的是,运行时动态修改的全局变量在MySQL服务重启后会恢复为配置文件中的值,不会持久化保存。
通过配置文件修改
要永久修改服务器变量,需要修改MySQL 5.5的配置文件my.cnf(Linux系统)或者my.ini(Windows系统),在[mysqld]段下添加对应的变量配置:
[mysqld] # 设置最大连接数为200 max_connections = 200 # 设置默认字符集为utf8 character_set_server = utf8 # 设置查询缓存大小为64M query_cache_size = 64M
修改完成后需要重启MySQL 5.5服务,配置才会生效,这种方式修改的变量会持久化保存,服务重启后不会丢失。
常见服务器变量说明
以下是MySQL 5.5中常用的几个服务器变量说明:
| 变量名 | 作用说明 | 默认值 |
|---|---|---|
| max_connections | 允许的最大客户端连接数 | 151 |
| query_cache_size | 查询缓存占用的内存大小,0表示关闭查询缓存 | 0 |
| innodb_buffer_pool_size | InnoDB存储引擎的缓冲池大小,用于缓存数据和索引 | 128M |
| character_set_server | 服务器默认字符集 | latin1 |
修改服务器变量前建议先了解变量的具体作用和影响,避免错误修改导致服务异常或者性能下降,生产环境修改前最好在测试环境验证效果。