在云服务器上部署 MySQL 和 Redis 是一个常见的操作,适用于 Web 应用、缓存服务等场景。下面是一个通用的步骤指南,适用于主流的 Linux 云服务器(如阿里云、腾讯云、AWS、Google Cloud 等)。
🧩 前提条件
- 已有一台云服务器(例如 Ubuntu 或 CentOS)
- 可以通过 SSH 登录
- 有 root 权限或 sudo 权限
✅ 一、部署 MySQL
1. 更新系统包
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
2. 安装 MySQL
Ubuntu:
sudo apt install mysql-server -y
CentOS:
sudo yum install mariadb-server mariadb -y
# 或安装官方 MySQL:
# 添加 MySQL 官方源后使用 yum install mysql-server
3. 启动并设置开机启动
sudo systemctl start mysql
sudo systemctl enable mysql
4. 初始化安全配置(推荐)
sudo mysql_secure_installation
按照提示设置 root 密码、删除匿名用户、禁止远程 root 登录等。
5. 登录 MySQL
mysql -u root -p
✅ 二、部署 Redis
1. 安装 Redis
Ubuntu/Debian:
sudo apt install redis -y
CentOS:
sudo yum install epel-release -y
sudo yum install redis -y
或者从源码编译安装(推荐用于定制化需求):
wget https://download.redis.io/redis-stable.tar.gz
tar -xzvf redis-stable.tar.gz
cd redis-stable
make
sudo make install
2. 启动 Redis 并设置开机启动
sudo systemctl start redis
sudo systemctl enable redis
3. 配置 Redis(可选)
编辑配置文件:
sudo nano /etc/redis.conf
常见修改项:
bind 0.0.0.0:允许外部访问(注意防火墙)protected-mode no:关闭保护模式(配合 bind 使用)requirepass yourpassword:设置密码
重启 Redis 生效:
sudo systemctl restart redis
4. 测试 Redis 连接
redis-cli ping
# 如果返回 PONG 表示成功
如果设置了密码:
redis-cli
auth yourpassword
ping
🔐 三、开放防火墙端口
确保你的云服务器安全组或防火墙已放行以下端口:
| 服务 | 端口 |
|---|---|
| MySQL | 3306 |
| Redis | 6379 |
例如,在 Ubuntu 上使用 ufw 开放:
sudo ufw allow 3306/tcp
sudo ufw allow 6379/tcp
sudo ufw reload
⚠️ 注意:不要对公网开放这些端口给所有人,建议只允许特定 IP 访问,防止被攻击!
📌 四、连接测试(本地或其他服务器)
你可以使用数据库工具(如 Navicat、DBeaver)或代码连接 MySQL 和 Redis。
示例:Python 连接 Redis
import redis
r = redis.StrictRedis(host='your_server_ip', port=6379, password='yourpassword')
r.set('foo', 'bar')
print(r.get('foo'))
🧼 五、其他建议
- 备份数据:定期备份 MySQL 数据库。
- 监控服务:使用 Prometheus + Grafana 监控 Redis 和 MySQL 性能。
- 使用 Docker(可选):可以用 Docker 快速部署 MySQL 和 Redis,便于环境隔离和迁移。
📦 附:Docker 部署示例(可选)
# MySQL
docker run --name mysql
-e MYSQL_ROOT_PASSWORD=yourpassword
-p 3306:3306
-d mysql:latest
# Redis
docker run --name redis
-p 6379:6379
-d redis
redis-server --appendonly yes --requirepass "yourpassword"
如果你告诉我你使用的具体操作系统、云服务商、是否使用 Docker,我可以提供更详细的定制化指导 😊
是否需要我帮你写一个自动化部署脚本?
CLOUD技术博