在云服务器部署mysql和Redis?

在云服务器上部署 MySQL 和 Redis 是常见的后端服务搭建任务。以下是详细的部署步骤,适用于主流云服务商(如阿里云、腾讯云、AWS、华为云等)提供的 Linux 云服务器(以 Ubuntu/CentOS 为例)。


🛠 准备工作

  1. 购买并登录云服务器

    • 选择合适的配置(如 2核4G,50G硬盘)
    • 系统建议:Ubuntu 20.04/22.04 或 CentOS 7/8
    • 开通安全组(防火墙)端口:
      • MySQL:3306
      • Redis:6379
      • SSH:22(默认)
  2. 使用 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

🔐 安全建议

  1. 防火墙限制

    • 使用云平台安全组,只允许特定 IP 访问 3306 和 6379
    • 或使用 ufw / firewalld 限制端口
  2. 定期备份

    • MySQL:使用 mysqldump 或 xtrabackup
    • Redis:启用 RDB/AOF,定期备份 dump.rdb
  3. 监控与日志

    • 查看日志:
      • MySQL:/var/log/mysql/error.log
      • Redis:/var/log/redis/redis-server.log
  4. 使用非 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博客 » 在云服务器部署mysql和Redis?