在云服务器上部署 MySQL 和 Redis 是常见的后端服务搭建任务。以下是详细的部署步骤,适用于主流云服务商(如阿里云、腾讯云、AWS、华为云等)提供的 Linux 云服务器(以 Ubuntu/CentOS 为例)。
🛠 准备工作
-
购买并登录云服务器
- 选择合适的配置(如 2核4G,50G硬盘)
- 系统建议:Ubuntu 20.04/22.04 或 CentOS 7/8
- 开通安全组(防火墙)端口:
- MySQL:3306
- Redis:6379
- SSH:22(默认)
-
使用 SSH 登录服务器
ssh root@你的服务器公网IP
✅ 一、部署 MySQL
1. 更新系统包
# Ubuntu
sudo apt update && sudo apt upgrade -y
# CentOS
sudo yum update -y
2. 安装 MySQL
Ubuntu
sudo apt install mysql-server -y
CentOS
# 添加 MySQL 官方源(以 MySQL 8.0 为例)
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm -y
sudo yum install mysql-server -y
3. 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
注意:CentOS 上服务名可能是
mysqld,使用sudo systemctl start mysqld
4. 初始化安全设置
sudo mysql_secure_installation
- 设置 root 密码
- 移除匿名用户
- 禁止 root 远程登录(可选)
- 移除 test 数据库
- 重载权限
5. (可选)允许远程访问 MySQL
修改配置文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
或 CentOS:/etc/my.cnf
找到 bind-address,修改为:
bind-address = 0.0.0.0
重启 MySQL
sudo systemctl restart mysql
创建远程访问用户
mysql -u root -p
CREATE USER 'admin'@'%' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
FLUSH PRIVILEGES;
⚠️ 注意:开放远程访问有安全风险,建议配合防火墙限制 IP。
✅ 二、部署 Redis
1. 安装 Redis
Ubuntu
sudo apt install redis-server -y
CentOS
sudo yum install epel-release -y
sudo yum install redis -y
2. 启动并设置开机自启
sudo systemctl start redis-server
sudo systemctl enable redis-server
注意:服务名可能为
redis,使用sudo systemctl start redis
3. 配置 Redis(关键步骤)
编辑配置文件:
sudo nano /etc/redis/redis.conf
修改以下配置:
# 允许远程访问
bind 0.0.0.0
# 开启密码认证(强烈建议)
requirepass YourStrongRedisPassword
# 后台运行(可选,systemd 已管理)
daemonize no
# 持久化设置(可选)
save 900 1
save 300 10
save 60 10000
4. 重启 Redis
sudo systemctl restart redis-server
5. (可选)测试连接
redis-cli
ping
# 回显 PONG 表示正常
auth YourStrongRedisPassword
🔐 安全建议
-
防火墙限制
- 使用云平台安全组,只允许特定 IP 访问 3306 和 6379
- 或使用
ufw/firewalld限制端口
-
定期备份
- MySQL:使用
mysqldump或 xtrabackup - Redis:启用 RDB/AOF,定期备份 dump.rdb
- MySQL:使用
-
监控与日志
- 查看日志:
- MySQL:
/var/log/mysql/error.log - Redis:
/var/log/redis/redis-server.log
- MySQL:
- 查看日志:
-
使用非 root 用户操作数据库
🧪 测试连接(本地或程序)
MySQL 测试
mysql -h 公网IP -u admin -p
Redis 测试
redis-cli -h 公网IP -p 6379
auth YourStrongRedisPassword
ping
📦 可选:使用 Docker 部署(更简洁)
# 启动 MySQL
docker run -d --name mysql
-e MYSQL_ROOT_PASSWORD=RootPass123
-e MYSQL_DATABASE=myapp
-p 3306:3306
mysql:8.0
# 启动 Redis
docker run -d --name redis
-e REDIS_PASSWORD=RedisPass123
-p 6379:6379
redis:alpine redis-server --requirepass $REDIS_PASSWORD
优点:隔离、版本管理方便;缺点:需安装 Docker
✅ 总结
| 服务 | 端口 | 配置重点 | 安全建议 |
|---|---|---|---|
| MySQL | 3306 | bind-address, root 密码, 远程用户 | 限制 IP,使用强密码 |
| Redis | 6379 | bind 0.0.0.0, requirepass | 设密码,禁用高危命令(如 FLUSHALL) |
如果你提供具体的云平台(如阿里云、腾讯云)或操作系统,我可以给出更精确的配置建议。需要我帮你写一键部署脚本吗?
ECLOUD博客