作者:程序员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 的性能,又能增强安全性和稳定性,是数据库运维与开发中的重要基础工作。🚀