Linux安装MySQL推荐使用包管理器:Ubuntu/Debian执行sudo apt-get install mysql-server,CentOS/RHEL 8+执行sudo dnf install mysql-community-server,二者均自动创建用户、配置服务、初始化权限,无需手动编译或解压tar包,兼顾最小化与安全性。

直接装 mysql-server 包就行,Ubuntu/Debian 系统默认就是最小化安装——它不带 GUI 工具、不拉一堆可选插件,只含 mysqld 核心服务和基础客户端。CentOS/RHEL 系统用 dnf install mysql-community-server 同理,官方仓库的包设计已剥离非必需组件。
为什么不用手动编译或下载 tar.gz 包?
手动解压安装(如 bin/mysqld --initialize)看似“更轻”,实则要自己处理用户权限、systemd 服务文件、日志路径、安全策略初始化等,反而容易漏配。而包管理器安装的 mysql-server 自动完成:创建 mysql 系统用户、生成默认 /etc/mysql/my.cnf.fallback、注册 mysql.service、设置数据目录权限 —— 这些全是运行 MySQL 的刚性依赖,绕不开。
Ubuntu/Debian 上确认是否真“最小”
安装后检查实际装了哪些包:
-
dpkg -l | grep '^ii.*mysql'—— 只应看到mysql-server、mysql-client、mysql-common等核心项,不含mysql-workbench或libmysqlclient-dev -
ls /usr/bin/ | grep mysql—— 输出应仅限mysql、mysqladmin、mysqldump等必要二进制,没有mysqlrouter或mysqlsh - 若误装了冗余包(比如之前装过宝塔),用
sudo apt autoremove --purge清理残留
CentOS/RHEL 8+ 必须禁用默认模块流
系统自带的 mysql 模块默认指向 8.0,但可能混入额外子包。执行前先锁定精简版本:
sudo dnf module reset mysqlsudo dnf module enable mysql:8.0- 再运行
sudo dnf install mysql-community-server - 装完立刻检查
rpm -qa | grep mysql,确保没多出mysql-router或mysql-shell
真正影响“最小化”的不是安装命令本身,而是后续是否执行了 mysql_secure_installation —— 它会启用密码强度校验、移除匿名用户等,这些是安全刚需,不是可选功能。跳过它,MySQL 就算装得再“小”,也等于裸奔在公网。


















