奋斗
努力

在腾讯云轻量服务器上如何自行部署数据库服务?

云计算

在腾讯云轻量应用服务器(Lighthouse)上自行部署数据库服务,通常分为选择数据库类型安装配置安全加固数据备份四个核心步骤。以下是以最常见的 MySQL 8.0 为例的完整操作指南(其他如 PostgreSQL、Redis 等逻辑类似):


一、前期准备

  1. 购买/登录轻量服务器

    • 确保已开通一台 Linux 实例(推荐 Ubuntu 22.04 LTS 或 CentOS 7+/8+)。
    • 通过 SSH 工具(如 PuTTY、Xshell、Terminal)连接服务器:
      ssh root@<你的公网IP>
  2. 系统更新与基础依赖

    # Ubuntu/Debian
    sudo apt update && sudo apt upgrade -y
    sudo apt install curl wget vim net-tools -y
    
    # CentOS/RHEL
    sudo yum update -y
    sudo yum install epel-release -y
    sudo yum install vim net-tools -y

二、安装 MySQL 数据库(以 Ubuntu 22.04 为例)

方法一:使用官方源安装(推荐,版本新且稳定)

# 下载 MySQL APT 配置文件
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
# 选择 MySQL 8.0 版本(按空格确认,回车提交)

# 更新包列表并安装
sudo apt update
sudo apt install mysql-server -y

# 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql

方法二:使用云市场镜像(一键部署)

若不想手动安装,可在腾讯云控制台:

  • 进入「重装系统」→ 选择「从云市场镜像创建」→ 搜索「MySQL」→ 选择官方或第三方镜像 → 重装即可(适合新手快速上手)。

三、初始化与基础配置

1. 安全初始化

sudo mysql_secure_installation

按提示设置:

  • 设置 root 密码(务必使用强密码
  • 移除匿名用户
  • 禁止 root 远程登录
  • 删除测试数据库
  • 重载权限表

2. 创建业务用户(避免直接用 root)

sudo mysql -u root -p
-- 进入 MySQL 后执行:
CREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myapp_user'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'%';
FLUSH PRIVILEGES;
EXIT;

⚠️ 注意:'%' 表示允许任意 IP 连接,生产环境建议改为具体内网 IP(如 192.168.1.100)或限制为本地 'localhost'

3. 修改绑定地址(如需网络访问)

编辑配置文件:

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

找到并修改:

[mysqld]
bind-address = 0.0.0.0  # 默认是 127.0.0.1,需改为此处才允许外部连接

重启服务:

sudo systemctl restart mysql

四、网络安全配置(关键!)

1. 开放防火墙端口(腾讯云轻量服务器自带防火墙)

  • 登录 腾讯云控制台
  • 进入「轻量应用服务器」→ 选择实例 → 「防火墙」标签页
  • 添加入站规则:
    • 协议:TCP
    • 端口:3306(MySQL 默认)
    • 授权对象:0.0.0.0/0(仅限开发测试;生产环境请替换为你的应用服务器 IP)

2. 数据库层面限制远程登录(双重保险)

在 MySQL 中仅允许特定 IP 连接:

-- 将 '%' 替换为你的应用服务器内网 IP
UPDATE mysql.user SET Host='192.168.1.100' WHERE User='myapp_user';
FLUSH PRIVILEGES;

✅ 最佳实践:不要将数据库直接暴露在公网
推荐架构:应用服务器在内网访问数据库,或通过 SSH 隧道/跳板机连接。


五、数据备份策略

自动备份脚本示例(crontab)

# 创建备份目录
sudo mkdir -p /backup/mysql

# 编写备份脚本
cat > /usr/local/bin/backup_mysql.sh << 'EOF'
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backup/mysql"
DB_NAME="myapp_db"
USER="root"
PASS="YourRootPassword"

mysqldump -u$USER -p$PASS --single-transaction $DB_NAME | gzip > $BACKUP_DIR/${DB_NAME}_$DATE.sql.gz
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete
echo "Backup completed: ${DB_NAME}_$DATE.sql.gz"
EOF

chmod +x /usr/local/bin/backup_mysql.sh

# 添加定时任务(每天凌晨 2 点备份)
(crontab -l 2>/dev/null; echo "0 2 * * * /usr/local/bin/backup_mysql.sh") | crontab -

额外建议:启用腾讯云云备份

  • 在控制台开启「自动快照」功能(每日/每周),防止误操作导致数据丢失。

六、验证部署是否成功

# 检查服务状态
systemctl status mysql

# 本地测试连接
mysql -u root -p

# 从另一台机器测试(需确保防火墙已放行)
mysql -h <你的公网IP> -P 3306 -u myapp_user -p

替代方案对比

方案 优点 缺点 适用场景
自行部署 完全可控、成本低 需维护、易出错 学习、定制化需求
腾讯云云数据库 CDB 高可用、自动备份、监控完善 费用较高 生产环境、企业级应用
云市场镜像 一键部署、预配置好 灵活性较低 快速搭建、非核心业务

💡 建议:生产环境优先使用 腾讯云云数据库 MySQL 版,自建仅用于测试、开发或特殊定制需求。


需要我提供 PostgreSQLRedisMongoDB 的部署步骤吗?或者需要生成完整的自动化部署脚本?

未经允许不得转载:云服务器 » 在腾讯云轻量服务器上如何自行部署数据库服务?