个人开发者的第一台云数据库:华为云RDS for MySQL从建库到备份恢复全流程
一、为什么我把数据库从 ECS 搬到了 RDS
很多个人开发者的第一个项目,都是在云服务器上 yum install mysql-server 一把梭,应用和数据库挤在同一台机器上。开发阶段这没什么问题,但项目一旦上线、开始有真实用户,自建 MySQL 的运维负担就会慢慢冒出来:
- 半夜磁盘写满,数据库直接挂掉,还得自己爬起来扩容;
- 没有自动备份,或者备份了却从没验证过能不能恢复,删库时只能干瞪眼;
- 单机一旦宿主机故障或需要重启维护,业务就中断;
- 慢 SQL、连接数打满、内存不足,没有监控告警,全靠用户反馈才知道。
这些恰恰是数据库托管服务(RDS,Relational Database Service)要解决的。华为云 RDS for MySQL 把高可用、自动备份、在线扩容、监控告警、安全加固这些"脏活累活"做成了开箱即用的能力,让你专注在 SQL 和业务上。这篇文章就以一个个人开发者的视角,把从建库到备份恢复的完整流程走一遍。
二、创建 RDS 实例:几个关键选择
在控制台进入「云数据库 RDS」→「实例管理」→「购买实例」,需要重点关注下面几项:
1. 计费方式与实例类型
- 计费方式:测试、短期体验选「按需计费」,用完即删;长期稳定运行选「包年包月」更划算,新人常有体验价。
- 实例类型:
单机成本最低,适合测试或非核心业务;主备是生产推荐,主节点故障时自动切换到备节点,通常跨可用区(AZ)部署;只读副本用于读多写少场景做读写分离,不能单独存在。
2. 引擎版本与规格
- 引擎选 MySQL,版本建议在 8.0(长期支持、性能和 JSON 支持更好),除非你的老项目依赖 5.7。
- 规格按 CPU、内存选「通用型」即可,个人项目一般 2 核 4GB 起步;注意规格支持后续变更,不用一开始就买大。
3. 存储与网络
- 存储类型选 SSD 云盘,初始容量不必给太大(比如 40GB),RDS 支持磁盘在线扩容,不用停机。
- 网络必须选和应用服务器(ECS)同一个 VPC 和子网,否则内网连不通;这是新手最容易踩的坑。
- 数据库端口默认 3306,没有特殊需要保持默认。
设置好管理员账号(root)密码,确认订单后等待几分钟,实例状态从「创建中」变为「正常」,就可以连接了。
三、连上数据库:先过安全组这一关
RDS 实例默认不暴露公网,应用通过内网地址连接,延迟低且更安全。在实例「基本信息」页能看到「内网地址」和「数据库端口」。
但光有地址还不够,必须配置安全组放行:进入实例的「安全组」规则,添加入方向规则,协议 TCP、端口 3306,源地址填应用 ECS 的内网 IP 或对应网段。装好客户端后,在同一 VPC 的 ECS 上验证:
mysql -h 内网地址 -P 3306 -u root -p
能进入 mysql> 提示符就说明网络和账号都通了。如果你的本地开发机也要连,需要在「连接管理」里单独开启公网地址(绑定 EIP),并在安全组放行你本地的出口 IP——强烈不建议把 0.0.0.0/0 放开,数据库裸奔会被全网扫描爆破。
四、建库建表与数据迁移
登录后建议为每个业务单独建库和专用账号,而不是都用 root:
CREATE DATABASE demo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'app'@'%' IDENTIFIED BY '强密码';
GRANT ALL PRIVILEGES ON demo.* TO 'app'@'%';
FLUSH PRIVILEGES;
如果是从自建 MySQL 迁移,数据量小可以直接用 mysqldump 导出再导入:
mysqldump -h 旧库 -u root -p --single-transaction --routines --triggers demo > demo.sql
mysql -h RDS内网地址 -u root -p demo < demo.sql
数据量大、需要不停机增量迁移的场景,华为云提供了 DRS(数据复制服务),能做全量+增量同步,割接时把停机窗口压到最小。
五、备份与恢复:删库前的最后一道防线
这是 RDS 最值钱的部分。在「备份恢复」页:
- 自动备份:默认每天全量备份并保留 binlog,保留天数可在 1~732 天之间设置,建议生产至少 7 天。
- 手动备份:大版本发布、结构变更前手动打一个快照,长期保留。
- 时间点恢复(PITR):基于全量+binlog,可以把数据恢复到过去任意一秒(精确到分钟),误删表、误更新数据时尤其有用。
注意:RDS 的恢复不是"原地覆盖",而是用备份恢复出一个新实例,你再核对数据、把需要的部分导回原实例。这样即使恢复操作本身有误,也不会二次破坏现场。建议每隔一段时间故意演练一次恢复,确认备份真的可用。
六、监控告警与日常运维
RDS 自带丰富的监控指标,在「云监控」里重点关注:CPU 利用率、内存使用率、磁盘使用率、当前连接数、慢 SQL 数、IOPS。建议为「磁盘使用率 > 80%」「连接数接近 max_connections」「CPU 持续高位」配置告警规则,通知到短信或邮件,把故障发现从"用户投诉"提前到"系统自动预警"。
此外可以在「参数组」里调整数据库参数,比如 max_connections、character_set_server、慢查询阈值 long_query_time;在「日志管理」里查看慢查询日志和错误日志,针对性优化。
七、避坑清单与总结
- ✅ 应用 ECS 和 RDS 一定要在同一个 VPC,优先走内网;
- ✅ 安全组最小化放行,公网地址能不开就不开,root 密码要够强;
- ✅ 自动备份保留天数给够,并定期演练恢复;
- ✅ 磁盘、规格都能在线扩容/变更,不必一次性买大;
- ❌ 不要把业务都跑在 root 账号下,要按库授权;
- ❌ 不要只备份不验证,能恢复的备份才算数。
从自建 MySQL 迁移到 RDS,本质上是把数据库的可用性和可恢复性交给平台兜底。对个人开发者和小团队来说,省下的运维精力和规避的故障风险,往往远超托管本身的费用。如果你也在 ECS 上"裸奔"着数据库,不妨开一个按需实例,把这篇流程亲手走一遍。
- 点赞
- 收藏
- 关注作者
评论(0)