MySQL 系统变量控制着数据库服务器的运行行为。配置这些变量可以让 MySQL 更好地适应你的硬件环境和业务需求。配置方式主要分为两种:命令行启动时设置和通过配置文件修改,部分变量还支持运行时动态调整。
1. 通过配置文件设置系统变量
最常见且推荐的方式是修改 MySQL 的配置文件(my.cnf 或 my.ini,取决于操作系统)。配置文件通常位于:
Linux: /etc/my.cnf 或 /etc/mysql/my.cnf Windows: my.ini 文件通常在 MySQL 安装目录下在配置文件的 [mysqld] 段落下添加或修改变量:
[mysqld]innodb_buffer_pool_size = 2G
max_connections = 500
key_buffer_size = 256M
log_error = /var/log/mysql/error.log
保存后重启 MySQL 服务使配置生效:
sudo systemctl restart mysql2. 启动时通过命令行参数设置
你也可以在启动 mysqld 时直接传入变量值:
mysqld --max_connections=300 --innodb_buffer_pool_size=1G这种方式适合临时测试,但不便于长期管理,建议还是使用配置文件。
3. 运行时动态修改变量
部分系统变量支持在 MySQL 运行期间动态修改,无需重启:
查看当前变量值:
SHOW VARIABLES LIKE 'max_connections';动态设置全局变量(影响所有新连接):
SET GLOBAL max_connections = 600;注意:动态设置只在当前实例有效,重启后失效。如需持久化,仍要写入配置文件。
4. 变量作用范围说明
MySQL 系统变量有两类作用域:
GLOBAL:影响整个服务器,新连接会继承该值 SESSION:仅影响当前会话,如 sql_mode例如:
SET SESSION sql_mode = 'STRICT_TRANS_TABLES';这只改变当前连接的行为,不影响其他用户。
基本上就这些。关键是根据实际负载调整关键变量,并确保配置持久化。修改前建议备份原配置,避免配置错误导致服务无法启动。
