压缩包直装更轻量是因为跳过包管理器默认安装的mysql-router、mysql-shell等冗余组件,仅保留核心二进制,配合关闭performance_schema、skip-name-resolve及调低缓存与连接数,内存可压至300mb以下。

直接用官方压缩包解压启动,比走 apt install 或 mysql-installer.exe 装完整套件省一半内存,300MB 以下跑起来才稳。
为什么压缩包直装比包管理器安装更轻量
包管理器默认拉取全套组件:mysql-router、mysql-shell、日志服务、测试库、文档目录——这些在 1GB 内存设备上全是负担。而官方 mysql-8.0.xx-winx64.zip(Windows)或 mysql-8.0.xx-linux-glibc2.17-x86_64.tar.xz(Linux)只含核心二进制和必要资源,解压即用,跳过服务注册和守护进程初始化。
实操建议:
- 解压后删掉
docs/、man/、support-files/目录(除非你真要查本地手册) - Windows 下坚决不执行
mysqld --install;Linux 下不启用systemd服务,改用前台命令启动 - 启动命令统一用:
mysqld --defaults-file=my.cnf --console,避免后台进程额外开销
my.cnf 必关的三项吃内存大户
默认配置对低配设备极不友好,performance_schema 单独就能占 80MB+,innodb_file_per_table 在小容量 SSD 上反而增加元数据压力,DNS 解析失败会让初始化卡住半分钟。
必须在 [mysqld] 段落里明确设置:
-
skip-name-resolve—— 强制禁用反向 DNS 查询,解决“启动巨慢”最常见原因 -
performance_schema = OFF—— 不是注释掉,而是显式设为OFF,否则某些版本仍会加载 -
innodb_file_per_table = OFF—— 关闭后所有表共用系统表空间,减少碎片与元数据开销
顺手调低这三项能立竿见影:
-
innodb_buffer_pool_size = 64M(InnoDB 最小可行值,禁止设为 0) -
key_buffer_size = 4M(纯 InnoDB 场景下 MyISAM 缓存可压到最低) -
max_connections = 32(默认 151,在 1GB 内存下超 50 就容易 OOM)
启动方式决定资源占用高低
后台服务模式(systemctl start mysqld 或 Windows Service)自带日志轮转、健康检查、信号监听等逻辑,对低配设备是冗余负担。前台运行更可控、更透明、更省资源。
实操要点:
- Linux 下用
nohup mysqld --defaults-file=my.cnf --console > mysql.log 2>&1 &启动,日志可查但不挂 systemd - Windows 下写个
start.bat:内容为start mysqld --defaults-file=my.cnf,双击即启,无服务注册 - 别碰
log_error_verbosity默认值,直接设为1,避免每条 warning 都记堆栈 -
innodb_log_file_size别乱调小——保持默认48M更稳,改小会导致频繁刷盘拖慢写入
真正容易被忽略的是:skip-name-resolve 必须加在 [mysqld] 段,加在 [client] 段无效;且一旦启用,所有授权必须用 IP 地址(如 'root'@'127.0.0.1'),不能用 'localhost'——这点不注意,连自己都登不进去。











