声明:由于本人经常记混 Linux 软件安装和卸载命令,本文相关步骤是在 AI 辅助下整理完成,仅供参考。


一、APT 是啥?它和 yum 是兄弟

  • APT(Advanced Package Tool):Ubuntu/Debian 的包管理器,自动解决依赖、从网络仓库下载、安装软件。
  • 底层工具是 dpkg(处理 .deb 包),APT 是“智能前台”。
  • 类似 CentOS 的 yum/dnf。

二、安装 MySQL:一步一步来

第 0 步:为什么命令前面要加 sudo

Ubuntu 默认 root 用户没有密码(被锁定),普通用户没有安装软件的权限。sudo 意思是“以 root 身份执行这条命令”。
系统会问你当前用户的密码,验证通过后临时获得 root 权限。


第 1 步:sudo apt update —— 刷新软件源列表

sudo apt update

参数拆解

  • sudo:提权
  • apt:包管理器
  • update:更新本地软件源元数据(不是升级软件)

在这里插入图片描述

如果你不跑 apt update 直接安装会怎样?

  • 本地元数据是旧的,可能安装到过时的版本(比如源里已经更新到 MySQL 8.0.36,你还装 8.0.32)
  • 或者源里已经删除了旧版本,APT 根据旧缓存找文件,报 404 Not Found
  • 依赖信息也是旧的,可能装到一半提示缺少某个库,但其实新版本已经不需要了

一句话:不 update,你可能装不上,或者装上的是有 bug 的老版本。


第 2 步:sudo apt install mysql-server —— 安装 MySQL

sudo apt install mysql-server

在这里插入图片描述

如果你想跳过“是否继续”的确认,加 -y

sudo apt install -y mysql-server

参数拆解

  • install:安装一个或多个软件包
  • mysql-server:包名(MySQL 服务器端)
  • -y--yes):对所有交互式提问自动回答 yes,比如问“占用 150MB 磁盘,继续吗?”

这步做了什么?(重要)

  1. 依赖解析:APT 查找 mysql-server 的元数据,发现它依赖 mysql-client-8.0mysql-commonlibaio1libc6 等。递归找出所有依赖,形成一个安装列表。
  2. 下载:从软件源把这些 .deb 包下载到 /var/cache/apt/archives/(缓存目录)。
  3. 安装:调用 dpkg -i 依次安装每个 .deb 包。安装过程中会执行预配置脚本(比如创建 mysql 系统用户、初始化数据目录)。
  4. 注册:将安装信息记录到 /var/lib/dpkg/status(已安装软件数据库)。
  5. 启动服务:MySQL 安装完成后自动启动(通过 systemd),命令:systemctl start mysql,并设置开机自启。

安装过程中你会看到类似输出

Reading package lists... Done
Building dependency tree... Done
The following additional packages will be installed:
  mysql-client-8.0 mysql-common libaio1 ...
...
Do you want to continue? [Y/n] y   # 加了 -y 就不会问
...
Setting up mysql-server-8.0 (8.0.36-0ubuntu0.22.04.1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.

装完后检查:systemctl status mysql 应该是 active (running)


三、安装的软件到底放到哪儿了?我能自己选目录吗?

1. 能不能自己指定安装目录(比如 /home/myapp/mysql)?

不能。
APT 作为包管理器,遵循 Linux 文件系统层次标准(FHS)。它会自动把不同文件放到系统预定义的目录里。这样做的好处:

  • 所有软件的命令都在 /usr/bin/usr/sbin$PATH 环境变量统一,你敲 mysql 就能运行,不用手动加路径
  • 配置文件都在 /etc,一目了然
  • 服务脚本统一在 /lib/systemd/system,用 systemctl 统一管理

如果你非要自己指定安装目录:那就别用 APT,去官网下载源码或二进制包,手动解压到你想放的目录(比如 /opt/mysql),然后自己配置 PATH 和服务。但那属于“高级玩法”,更新、卸载都很麻烦,不推荐新手。

2. APT 安装 MySQL 后,具体文件分布(完整清单)

文件类型 路径 说明
可执行命令(客户端工具) /usr/bin/mysql
/usr/bin/mysqldump
/usr/bin/mysqladmin
你敲的 mysql 等命令放这里
服务器程序 /usr/sbin/mysqld 服务端守护进程(通常不需要直接执行)
配置文件 /etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf
主配置和子配置
数据目录(你的数据库文件) /var/lib/mysql/ 最重要! 每个数据库一个子目录,表文件、ibdata等
日志文件 /var/log/mysql/error.log
/var/log/mysql/mysql.log
错误日志、查询日志
systemd 服务单元 /lib/systemd/system/mysql.service 用于 systemctl start/stop mysql
运行时文件(PID、socket) /var/run/mysqld/ 进程ID文件、socket文件(重启后消失)
文档/版权 /usr/share/doc/mysql-server/ 帮助文档、版权信息

3. 怎么查某个包安装的所有文件?

dpkg -L mysql-server

在这里插入图片描述

输出会列出所有该包安装的文件路径(一行一个)。
反查:想知道 /usr/bin/mysql 属于哪个包?

dpkg -S /usr/bin/mysql

在这里插入图片描述


四、卸载 MySQL:remove vs purge,以及残留

1. apt remove —— 卸载程序,保留配置和数据

sudo apt remove mysql-server
# 或自动确认
sudo apt remove -y mysql-server

做了什么?

  • 删除 /usr/bin/mysql/usr/sbin/mysqld 等程序文件
  • 保留 /etc/mysql/ 下的配置文件
  • 保留 /var/lib/mysql/ 下的数据库数据(你的表、记录都在)
  • 保留 /var/log/mysql/ 下的日志文件(但不再写入新日志)
  • 停止服务并禁用开机自启

适用场景:你想暂时禁用 MySQL,或者重装但保留现有数据库和配置。

2. apt purge —— 卸载 + 删配置 + 删数据

sudo apt purge mysql-server
# 或
sudo apt purge -y mysql-server

做了什么?

  • 删除程序文件
  • 删除 /etc/mysql/ 配置文件
  • 删除 /var/lib/mysql/ 数据目录(数据全丢!
  • 日志文件 /var/log/mysql/ 通常不会自动删除(APT 不删日志,需要手动清理)

⚠️ 警告purge 会删掉所有数据库!如果有重要数据,先备份(mysqldump)。

3. 卸载后,残留文件清单(手工清理用)

即使 purge,也可能留下一些空目录或日志文件。下面是 MySQL 相关的所有路径及残留情况:

路径 remove purge 是否需要手动清理
/etc/mysql/ 保留 删除 purge 已删,无需
/var/lib/mysql/ 保留 删除 purge 已删,无需
/var/log/mysql/ 保留(旧日志) 保留(旧日志) 可选,sudo rm -rf /var/log/mysql
/var/run/mysqld/ 空目录残留 空目录残留 无影响,重启后消失
/tmp/mysql.sock(如果有) 可能残留 可能残留 重启后消失

彻底清理所有残留的命令(卸载后执行):其中更多操作老铁们可以自行查询AI

# 1. 卸载 MySQL 主服务、客户端、公共配置文件(彻底删除包+配置)
sudo apt purge mysql-server mysql-client mysql-common -y

# 2. 卸载 MySQL 底层核心二进制包(解决残留无法删除的问题)
sudo apt purge mysql-client-core-8.0 mysql-server-core-8.0 -y

# 3. 自动清理无用依赖与残留包(系统级大扫除)
sudo apt autoremove -y

# 4. 强制删除 MySQL 数据目录(防止数据残留)
sudo rm -rf /var/lib/mysql

# 5. 强制删除 MySQL 配置目录(防止配置残留)
sudo rm -rf /etc/mysql

# 6. 强制删除 MySQL 日志目录(彻底无残留)
sudo rm -rf /var/log/mysql

4. 卸载后如何确认已经干净?

dpkg -l | grep mysql      # 看是否还有 mysql 相关的包(行首是 ii 表示已安装,rc 表示残留配置)
ls /etc/mysql              # 看配置目录是否还在
ls /var/lib/mysql          # 看数据目录是否还在

五、常用 APT 命令及参数大全(MySQL 示例)

命令 参数含义 示例
sudo apt update 更新软件源元数据 必须先做
sudo apt install mysql-server 安装 MySQL -
sudo apt install -y mysql-server -y 自动确认 省去敲 y
sudo apt remove mysql-server 卸载但保留配置/数据 -
sudo apt purge mysql-server 彻底卸载(删配置+数据) -
sudo apt autoremove 删除不再需要的依赖包 卸载后运行,清理孤儿包
sudo apt clean 清理 /var/cache/apt/archives/ 下的 .deb 缓存 释放磁盘空间
dpkg -L mysql-server 列出该包安装的所有文件 查文件位置
dpkg -S /usr/bin/mysql 反查文件属于哪个包 找谁安装了它

六、最后总结

  • 安装前先 sudo apt update,否则可能装不上或装老版本。
  • 安装目录不能自己选,APT 按 Linux 规矩自动分发:命令放 /usr/bin,配置放 /etc,数据放 /var/lib,日志放 /var/log
  • dpkg -L 包名 查文件位置。
  • 卸载remove 留配置/数据,purge 连锅端(数据全丢!)。
  • 残留清理purge 后手动删 /var/log/mysql(日志)。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐