Windows 服务器跑 MySQL 的注意事项
发布时间:2026-03-23 21:56       
更新时间:2026-03-24 05:46
在 Windows 上跑 MySQL 完全可行,官方同时提供 MSI 安装包和 ZIP 免安装版,坑都藏在细节里,逐项过一遍就能避开。
服务化安装
不要用命令行手动启动 mysqld,注册成 Windows 服务,重启后才会自动拉起。管理员权限执行:
mysqld --install MySQL --defaults-file=D:\mysql\my.ini
net start MySQL
卸载或升级版本前先停服务,再动数据目录,避免文件被占用导致安装失败。
用 MSI 向导安装的话,最后一步会自动完成服务注册,默认装在 C:\Program Files\MySQL\ 下,数据目录建议在向导里就改到数据盘。
最小可用配置
my.ini 先盯这四行:
[mysqld]
port=3306
character-set-server=utf8mb4
innodb_buffer_pool_size=2G
字符集给 utf8mb4,避免中文乱码返工;buffer pool 给到实例内存的一半左右,其余留给连接和系统。basedir、datadir 与实际路径对齐;max_connections 按业务并发调,别用默认值硬扛;wait_timeout 调小,减少休眠连接堆积。内存给多少先看数据量:数据文件两个 G 以内的库,4G 内存的机器就够用;改完配置用 mysqladmin -u root -p status 确认实例正常,再翻一遍错误日志。
路径与权限
数据目录别放系统盘,也避免空格和中文路径。目录建好后单独设 NTFS 权限:只保留 SYSTEM、Administrators 和 MySQL 服务运行账号,把 Users 组的访问权去掉。很多教程漏了这一步,等于数据库文件对所有登录用户开放,内部风险不小。网络侧同理,3306 只对应用网段放行:
netsh advfirewall firewall add rule name="mysql-lan" dir=in action=allow protocol=TCP localport=3306 remoteip=10.0.0.0/24
备份与差异
备份用 mysqldump 配合 Windows 计划任务每天跑,脚本里加 --single-transaction,InnoDB 表备份期间不锁业务,产物放数据盘并保留多份。备份脚本最后加一步检查:看备份文件的大小和修改时间,零字节的备份等于没备份。引擎版本选长期支持系列,跨大版本升级前先读官方的版本说明,小版本按月跟进即可。和 Linux 相比,同版本 MySQL 在 Windows 上高并发性能通常略逊,差距来自文件系统与网络栈的实现,中小业务感知不明显;到了性能敏感的量级,换 Linux 系统或裸金属物理机更实在。
提醒一句:Windows 更新重启会连带重启 MySQL,服务启动类型设为"自动",恢复选项里第一次、第二次失败都配成"重新启动服务",别让一次更新把数据库留在停机状态。