作者:程序员LSP
分类:MySQL 配置管理 / 性能调优 / 启动选项指南
更新时间:2025年6月
1. MySQL 服务器命令选项的基本概念
MySQL 服务器支持三种方式配置启动参数:
-
✅ 命令行参数
mysqld --port=3306 --max_connections=1000
-
✅ 配置文件 my.cnf 或 my.ini
[mysqld]
port=3306
max_connections=1000 -
✅ 运行时动态修改(部分变量支持)
SET GLOBAL max_connections = 1000;
2. MySQL 配置文件路径
📍 Windows 配置文件路径
位置 | 作用 |
---|---|
%WINDIR%\my.ini 或 my.cnf | 全局配置 |
C:\my.ini 或 C:\my.cnf | 全局配置 |
BASEDIR\my.ini | 安装目录配置 |
%APPDATA%\MySQL.mylogin.cnf | 客户端配置 |
DATADIR\mysqld-auto.cnf | 持久化系统变量 |
🐧 Unix/Linux/macOS 配置文件路径
位置 | 作用 |
---|---|
/etc/my.cnf | 全局配置 |
/etc/mysql/my.cnf | 全局配置 |
SYSCONFDIR/my.cnf | 全局配置 |
$MYSQL_HOME/my.cnf | 服务器专用配置 |
~/.my.cnf | 当前用户配置 |
~/.mylogin.cnf | 登录路径配置 |
DATADIR/mysqld-auto.cnf | 持久化系统变量 |
🔹 优化建议:
-
Linux 上建议修改
/etc/my.cnf
作为全局入口。 -
Windows 可在
C:\my.ini
修改参数。 -
特定用户需求,可在
~/.my.cnf
设置。
3. 常见服务器启动选项
3.1 基础选项
选项 | 说明 | 示例 |
---|---|---|
--help | 显示帮助信息 | mysqld --help |
--verbose --help | 显示详细帮助 | mysqld --verbose --help |
--version, -V | 显示版本信息 | mysqld --version |
--basedir=dir | 指定安装目录 | --basedir=/usr/local/mysql |
--datadir=dir | 数据存储路径 | --datadir=/var/lib/mysql |
--socket=file | Unix socket 路径 | --socket=/tmp/mysql.sock |
--port=port | 监听端口号 | --port=3307 |
4. 安全性相关选项
选项 | 说明 | 默认值 | 示例 |
---|---|---|---|
--allow-suspicious-udfs | 是否允许可疑 UDF | OFF | --allow-suspicious-udfs=ON |
--chroot=dir | 设置 chroot 限制目录 | 无 | --chroot=/var/mysql |
--safe-user-create | 限制非特权用户创建账户 | OFF | --safe-user-create=ON |
--skip-grant-tables | 跳过权限验证(危险) | OFF | --skip-grant-tables |
--validate-user-plugins | 启用插件校验 | ON | --validate-user-plugins=OFF |
5. 日志与调试选项
选项 | 说明 | 默认值 | 示例 |
---|---|---|---|
--log-error[=file] | 错误日志路径 | hostname.err | --log-error=/var/log/mysql-error.log |
--console | Windows 控制台输出 | 无 | --console |
--core-file | 生成 core dump 文件 | 无 | --core-file |
--daemonize | 后台守护进程模式 | OFF | --daemonize |
--debug[=options] | 调试模式 | 无 | --debug=d:t:o,/tmp/mysqld.trace |
6. 复制、二进制日志相关选项
选项 | 说明 | 默认值 | 示例 |
---|---|---|---|
--binlog-do-db=db | 记录指定数据库 | 无 | --binlog-do-db=test |
--binlog-ignore-db=db | 忽略某数据库 | 无 | --binlog-ignore-db=logs |
--relay-log=file | 中继日志文件名 | 无 | --relay-log=relay-bin |
--server-id=id | 服务器唯一标识 | 0 | --server-id=1 |
7. 结论与优化建议
7.1 常见优化策略
✅ 日志管理
-
启用
--log-error
,方便排查错误。 -
严禁在生产环境使用
--skip-grant-tables
。
✅ 性能优化
-
增大
--innodb-buffer-pool-size
提升性能。 -
配置
--binlog-do-db
降低日志负担。
✅ 安全性优化
-
禁用
--allow-suspicious-udfs
防止恶意函数加载。 -
启用
--validate-user-plugins
避免插件漏洞。
✅ 事务与复制优化
-
设置合理的
transaction-isolation
提升并发性能。 -
多节点复制中,确保
--server-id
唯一。
通过合理配置这些启动参数,既能提升 MySQL 的性能,又能增强安全性和稳定性,是数据库运维与开发中的重要基础工作。🚀