
---

## 🧩 一、卸载旧版本（如果你之前装过 5.7 或 MariaDB）

为了避免冲突，建议先清理旧包：

```bash
sudo systemctl stop mysql || true
sudo apt remove --purge -y mysql-server mysql-client mysql-common mariadb-server mariadb-client mariadb-common
sudo apt autoremove --purge -y
sudo rm -rf /var/lib/mysql /etc/mysql
```

---

## ⚙️ 二、添加官方 MySQL APT 仓库

### 1️⃣ 下载并安装配置包

```bash
wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.36-1_all.deb
```

安装时会弹出交互菜单，请仔细选择：

- **MySQL Server & Cluster → mysql-8.4-lts**
    
- 其他（如 Tools、Connector 等）可保持默认。
    

然后退出（选择 “OK” 保存配置）。

---

## ⚙️ 三、更新并安装 MySQL 8.4 LTS

```bash
sudo apt update
sudo apt install -y mysql-server
```

这个命令会自动安装最新的 MySQL 8.4（LTS 版），包含 `mysql-community-server` 和相关依赖。

---

## 🔍 四、验证安装

```bash
mysql --version
```

你应看到类似输出：

```
mysql  Ver 8.4.2 for Linux on x86_64 (MySQL Community Server - GPL)
```

---

## 🧠 五、启动与开机自启

```bash
sudo systemctl enable mysql
sudo systemctl start mysql
sudo systemctl status mysql
```

如果输出里状态是 `active (running)` ✅，说明服务正常运行。

---

## 🔐 六、安全配置

执行官方安全脚本：

```bash
sudo mysql_secure_installation
```

它会引导你：

- 设置 root 密码
    
- 移除匿名用户
    
- 禁止 root 远程登录（可选）
    
- 删除 test 数据库
    
- 重载权限表
    

建议全部选择“是（Y）”。

---

## 🧭 七、登录测试

```bash
mysql -u root -p
```

输入刚刚设置的密码，进入后执行：

```sql
SELECT VERSION();
```

输出应为：

```
+-----------+
| VERSION() |
+-----------+
| 8.4.x     |
+-----------+
```

---

## 🧰 八、（可选）修改 MySQL 配置文件

主配置路径：

```
/etc/mysql/mysql.conf.d/mysqld.cnf
```

如果你想修改端口、字符集等：

```bash
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```

推荐添加以下配置以支持中文与 emoji：

```ini
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[client]
default-character-set = utf8mb4
```

然后重启服务：

```bash
sudo systemctl restart mysql
```

---

## 🧱 九、测试端口与启动情况

```bash
ss -tunlp | grep mysql
```

输出类似：

```
tcp   LISTEN  0  80  127.0.0.1:3306  *:*  users:(("mysqld",pid=xxxx,fd=xxx))
```

说明 MySQL 已在 3306 端口监听。

---

## 🚀 十、总结

|项目|状态|
|---|---|
|系统|Debian 12 (Bookworm) ✅|
|MySQL 版本|8.4 LTS ✅|
|官方支持|完全兼容|
|安装难度|简单（无依赖冲突）|
|推荐用途|长期开发 / 生产环境|

---
