自己搭建 MySQL 云数据库是完全可行的,尤其适合学习、测试或小型项目。不过需要注意的是,“云数据库”通常指在公有云平台(如阿里云、腾讯云、AWS、Google Cloud)上托管的数据库服务。而“自己搭建”则意味着你将自行管理服务器和数据库,属于自建数据库。
下面我为你详细介绍如何自己搭建一个类似“云数据库”的 MySQL 服务:
✅ 一、选择部署方式
方式1:使用云服务器(推荐)
- 租用一台云服务器(如阿里云 ECS、腾讯云 CVM、AWS EC2 等)
- 在服务器上安装 MySQL
- 配置远程访问权限
- 通过公网 IP 连接数据库
优点:
- 成本低(最低几十元/月)
- 完全可控
- 可定制性强
缺点:
- 需要自己维护(备份、安全、高可用等)
- 不如云厂商 RDS 稳定和安全
✅ 二、具体搭建步骤(以 Ubuntu + MySQL 8.0 为例)
1. 购买并登录云服务器
- 选择系统:Ubuntu 20.04 / 22.04
- 开放端口:确保安全组开放
3306端口(MySQL 默认端口) - 获取公网 IP
2. 安装 MySQL
# 更新包列表
sudo apt update
# 安装 MySQL 服务器
sudo apt install mysql-server -y
# 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
3. 初始化安全设置
sudo mysql_secure_installation
按提示设置 root 密码、移除匿名用户、禁止远程 root 登录等。
4. 允许远程连接
默认 MySQL 只允许本地连接,需修改配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address,将其改为:
bind-address = 0.0.0.0
保存并重启 MySQL:
sudo systemctl restart mysql
5. 创建远程访问用户
进入 MySQL 命令行:
sudo mysql -u root -p
执行以下 SQL:
-- 创建新用户(不建议直接用 root 远程登录)
CREATE USER 'myuser'@'%' IDENTIFIED BY '你的强密码';
-- 授予权限(例如所有权限)
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
'%'表示允许从任意 IP 连接,生产环境建议限制为特定 IP。
6. 防火墙设置
确保云服务器防火墙(如 ufw)放行 3306:
sudo ufw allow 3306
同时在云平台控制台的安全组中放行 3306 端口(入方向)。
✅ 三、从外部连接数据库
使用客户端工具(如 Navicat、DBeaver、MySQL Workbench)连接:
- 主机:你的云服务器公网 IP
- 端口:3306
- 用户名:
myuser - 密码:你设置的密码
✅ 四、安全建议(非常重要!)
- 不要用 root 远程登录
- 使用强密码
- 限制访问 IP(如只允许公司或家庭 IP)
- 定期备份数据
- 开启日志监控
- 考虑使用 SSL 加密连接
- 避免暴露 3306 到公网(可通过 SSH 隧道或更安全)
✅ 五、替代方案(更安全/省心)
| 方案 | 说明 |
|---|---|
| 云厂商 RDS | 如阿里云 RDS MySQL,自动备份、高可用、安全防护,适合生产环境 |
| Docker 部署 | 使用 Docker 快速部署 MySQL,便于迁移和管理 |
| 私有云/VPC 内部部署 | 将数据库放在内网,通过跳板机或 API 访问,更安全 |
✅ 六、是否推荐自建?
| 场景 | 是否推荐 |
|---|---|
| 学习/测试 | ✅ 强烈推荐 |
| 小型网站/个人项目 | ✅ 可行,但注意备份和安全 |
| 中大型生产系统 | ❌ 不推荐,应使用云数据库 RDS |
总结
你可以通过云服务器自己搭建一个“类云数据库”的 MySQL 服务,技术上简单可行。但务必重视安全性、稳定性、备份机制。对于生产环境,建议直接使用阿里云、腾讯云等提供的 MySQL RDS 服务,省心且更可靠。
如果你告诉我你的使用场景(比如:个人博客?小程序后端?学习用途?),我可以给你更具体的建议和配置方案。
CDNK博客