Debian安装Redis和MySQL
本文要装的是 Oracle MySQL 和 Redis,不是 MariaDB。
说明
本文要装的是 Oracle MySQL 和 Redis,不是 MariaDB。
Debian 自带仓库里的 default-mysql-server 实际会装成 MariaDB,不要用那个包。本机用 apt 装 MySQL 时,走 MySQL 官方 APT 源。
| 方式 | Redis | MySQL |
|---|---|---|
| A. 软件源 | Debian 源 redis-server |
MySQL 官方 APT → mysql-community-server |
| B. Docker | redis:8.8.2 |
mysql:9.7.2 |
密码示例:infra123!(请改成自己的)。
不要两套同时占 3306 / 6379。
前置:
- Linux 初始机
- 配置 Debian 软件源
- 走 Docker 时还需 Debian 中国源安装 Docker
方式 A:软件源安装(含密码配置)
先清掉可能装过的 MariaDB(如有)
若以前误装过 default-mysql-server / mariadb-*,先卸干净,避免抢端口和混淆:
安装 Redis(Debian 源)
未设密码时:
配置 Redis 密码
建议:
或:
数据默认在 /var/lib/redis/,配置在 /etc/redis/redis.conf。
添加 MySQL 官方 APT 源
Debian 仓库里没有真正的 mysql-server,需要 Oracle 的配置包:
dpkg -i 若弹出交互界面:
- 选 MySQL Server & Cluster
- 选需要的系列(推荐 mysql-8.4-lts 或 mysql-9.7-lts,按项目要求)
- 确认 Debian 代号;若列表暂无
trixie,可选相近的bookworm,或等官方完整支持后重配 - OK 退出
也可事后再改:
确认源里已是社区版 MySQL,而不是 MariaDB:
安装 MySQL Community Server
安装过程通常会提示设置 root 密码,直接设为例如 infra123!,认证插件选默认(MySQL 8+ 多为 caching_sha2_password)即可。
若安装未弹窗,装完后再设(见下一节)。
Debian 13 若启动报缺 libaio.so.1,可先装兼容库并做符号链接后再启:
配置 / 修改 MySQL root 密码
做法一:安全脚本
按提示设 root 密码、关远程 root、删测试库等。
做法二:已能用 sudo 进库时(临时无密码或 socket)
做法三:忘记密码时(简要)
验证:
建库与业务用户
临时远程连接(MySQL 8.0+)
仅在调试需要时开放,用完立刻收回。MySQL 8.0 要求 先建用户、再授权,不能再写成老的 GRANT ... IDENTIFIED BY 一条龙。
1)允许监听非本机(按需)
临时改成:
若开了 UFW,再临时放行(示例):
2)创建可从任意主机登录的 root(或专用账号)并授权
更稳妥是用业务账号而不是 root@'%',例如:
其他机器测试:
3)用完撤销(务必做)
然后把 bind-address 改回 127.0.0.1 并重启 MySQL;UFW 临时规则也删掉:
默认只绑本机(日常)
apt 方式常用命令
数据目录默认:/var/lib/mysql/;配置:/etc/mysql/。
方式 B:Docker 安装(固定版本 + datas 持久化)
| 服务 | 镜像 | 宿主机数据 | 端口 | 重启策略 |
|---|---|---|---|---|
| MySQL | mysql:9.7.2 |
~/Workspace/datas/mysql |
3306 | unless-stopped |
| Redis | redis:8.8.2 |
~/Workspace/datas/redis |
6379 | unless-stopped |
准备目录
从旧 volume 迁移时:
MySQL 9.7.2
连接:127.0.0.1:3306 / root / infra123!
临时远程时:SQL 与方式 A 的 A7 相同(CREATE USER 'root'@'%' → GRANT → FLUSH;用完 REVOKE / DROP USER)。Docker 侧把端口从 127.0.0.1:3306 临时改成 0.0.0.0:3306(或保持 3306:3306),UFW / DOCKER-USER 同步放开可信网段,用完改回。
Redis 8.8.2
官方镜像不会自动把 REDIS_PASSWORD 变成 requirepass,密码写在参数里,并开 AOF:
Docker 运维
删容器可保留数据:不要删 ~/Workspace/datas/{mysql,redis}。
从命名卷迁到 datas(可选)
端口安全
仅本机访问时:
怎么选
| 需求 | 建议 |
|---|---|
系统服务、systemctl 管理、官方 MySQL |
方式 A(MySQL APT + Debian Redis) |
版本钉死、数据放 Workspace/datas、好搬家 |
方式 B(Docker) |
再次强调:不要用 apt install default-mysql-server,那会变成 MariaDB。
小结
方式 A: Redis → Debian redis-server + requirepass;MySQL → mysql-apt-config + mysql-community-server,安装时或 ALTER USER / mysql_secure_installation 设 root 密码。
方式 B: mysql:9.7.2 / redis:8.8.2,密码用环境变量或 --requirepass,数据 bind 到 ~/Workspace/datas,--restart unless-stopped。