🗣 Wd提问: VPS搭建教程云数据库
🤖 Ai回答: 这是一份非常详细的、面向初学者的 VPS 搭建云数据库(以 MySQL 和 PostgreSQL 为例)的完整教程。涵盖了从准备工作到安全加固、备份策略的全部流程。
VPS 自建云数据库完整教程
本教程将指导您如何在 VPS (Virtual Private Server) 上搭建一个可以通过公网访问的云数据库。我们将以最常见的 MySQL (或其分支 MariaDB) 和 PostgreSQL 为例,并提供详细的步骤和安全建议。
🤔 为什么选择自建云数据库?
在开始之前,我们先了解一下自建的优势和劣势。
优势:
* 成本低廉: 相对于阿里云 RDS、AWS RDS 等托管服务,VPS 成本更低,尤其适合个人开发者或小型项目。
* 完全控制: 您可以完全控制数据库的版本、配置和运行环境。
* 学习价值: 是学习 Linux 系统管理、网络和数据库运维的绝佳实践。
劣势:
* 维护复杂: 您需要负责所有的安装、配置、更新、备份和安全。
* 安全责任: 安全由您自己负责,一个错误的配置可能导致数据泄露。
* 可用性保障: 托管服务通常提供高可用和自动故障转移,自建则需要您自己来实现。
🛠️ 准备工作
1、 一台 VPS:
* 供应商: DigitalOcean, Vultr, Linode, 阿里云, 腾讯云等。
* 配置: 最低建议 1核CPU / 1GB内存,对于生产环境,建议至少 2核CPU / 2GB内存。
* 操作系统: 推荐 Ubuntu 20.04 LTS 或 22.04 LTS,本教程将基于此。
2、 SSH 客户端:
* Windows: PuTTY 或 Windows Terminal。
* macOS / Linux: 系统自带的终端。
3、 一个域名 (可选但推荐):
* 可以将数据库服务绑定到一个子域名(如 `db.yourdomain.com`),方便记忆和管理。
🚀 核心搭建步骤 (以 MySQL / MariaDB 为例)
我们将使用 MariaDB (MySQL 的一个流行分支) 作为示例,步骤与 MySQL 几乎完全相同。
1、连接到 VPS
打开您的 SSH 客户端,使用以下命令连接到您的服务器。将 `your_vps_ip` 替换为您的 VPS 公网 IP 地址。
bash
ssh root@your_vps_ip
2、更新系统软件包
连接成功后,第一步永远是更新系统,以确保所有软件都是最新版本,修复已知的安全漏洞。
bash
apt update && apt upgrade -y
3、安装 MariaDB 数据库
执行以下命令安装 MariaDB 服务器和客户端。
bash
apt install mariadb-server mariadb-client -y
安装完成后,数据库服务会自动启动。您可以用以下命令检查其状态:
bash
systemctl status mariadb
如果看到 `active (running)` 字样,说明运行正常。
4、安全加固 (非常重要!)
MariaDB 提供了一个安全脚本来进行基础的安全配置,强烈建议运行它。
bash
mysql_secure_installation
这个脚本会询问您一系列问题,建议按如下方式选择:
* `Enter current password for root (enter for none):` - 直接按回车(初始root密码为空)。
* `Switch to unix_socket authentication? [Y/n]` - 输入 `n` 并回车(我们使用密码认证)。
* `Set root password? [Y/n]` - 输入 `Y` 并回车,然后为数据库的 `root` 用户设置一个强密码。
* `Remove anonymous users? [Y/n]` - 输入 `Y` 并回车(删除匿名用户,提高安全性)。
* `Disallow root login remotely? [Y/n]` - 输入 `Y` 并回车(禁止 root 用户从远程登录,这是一个关键安全措施)。
* `Remove test database and access to it? [Y/n]` - 输入 `Y` 并回车(删除测试数据库)。
* `Reload privilege tables now? [Y/n]` - 输入 `Y` 并回车(重新加载权限表使更改生效)。
5、配置远程访问
默认情况下,MariaDB 只监听本地地址 (`127.0.0.1`)。我们需要修改它,使其能被外部服务器访问。
1、 编辑配置文件:
配置文件通常位于 `/etc/mysql/mariadb.conf.d/50-server.cnf` 或 `/etc/mysql/my.cnf`。使用 `nano` 编辑器打开它:
bash
nano /etc/mysql/mariadb.conf.d/50-server.cnf
2、 修改 `bind-address`:
找到 `bind-address` 这一行,将其值从 `127.0.0.1` 修改为 `0.0.0.0`。`0.0.0.0` 表示监听所有网络接口。
ini
原来的值
bind-address = 127.0.0.1
修改后的值
bind-address = 0.0.0.0
保存并退出: 在 `nano` 中,按 `Ctrl+X`,然后按 `Y`,最后按 `Enter`。
6、创建数据库和专用用户
出于安全考虑,我们不应该直接使用 `root` 用户来连接数据库。我们需要为您的应用创建一个专用的数据库和用户。
1、 登录到 MariaDB:
bash
mysql -u root -p
输入您在步骤 4 中设置的 root 密码。
2、 执行 SQL 命令:
在 MariaDB 提示符 (`MariaDB [(none)]`) 下,依次执行以下命令。请替换 `your_database_name`, `your_username` 和 `your_strong_password` 为您自己的值。
sql
创建一个新的数据库
CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
创建一个新用户,并允许其从任何 IP 地址 ('%') 连接
注意:'%' 表示所有主机,生产环境建议替换为应用服务器的 IP 地址,如 'app_server_ip'
CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_strong_password';
授予该用户对新数据库的所有权限
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'%';
刷新权限,使更改立即生效
FLUSH PRIVILEGES;
退出
EXIT;
7、配置防火墙
VPS 的防火墙是安全的第一道防线。我们将使用 Ubuntu 自带的 `ufw` (Uncomplicated Firewall)。
1、 允许 SSH 连接 (防止把自己锁在外面):
bash
ufw allow ssh
2、 允许数据库端口 (3306) 的访问:
最佳实践: 只允许您的应用服务器访问数据库端口,而不是向全世界开放。将 `your_app_server_ip` 替换为您的应用服务器(或您的本地电脑IP)的公网地址。
bash
ufw allow from your_app_server_ip to any port 3306
临时测试: 如果您想先从任何地方测试连接,可以暂时全开(不推荐用于生产环境):
bash
ufw allow 3306
3、 启用防火墙:
bash
ufw enable
系统会提示您可能会中断 SSH 连接,输入 `y` 确认即可。
8、重启服务并测试连接
1、 重启 MariaDB 服务,使所有配置生效:
bash
systemctl restart mariadb
2、 测试远程连接:
* 从另一台服务器或您的本地电脑,使用数据库客户端(如 DBeaver, Navicat, MySQL Workbench)进行连接。
* 连接参数:
* Host: `your_vps_ip`
* Port: `3306`
* Username: `your_username`
* Password: `your_strong_password`
* Database: `your_database_name`
* 如果连接成功,恭喜您!您的云数据库已经搭建好了。
(可选) 搭建 PostgreSQL 数据库
如果您更喜欢 PostgreSQL,步骤类似但配置细节不同。
1、 安装:
bash
apt install postgresql postgresql-contrib -y
2、 配置远程访问:
* 编辑 `/etc/postgresql/<version/main/postgresql.conf`
* 找到 `listen_addresses = 'localhost'`,修改为 `listen_addresses = '*'`。
* 编辑 `/etc/postgresql/<version/main/pg_hba.conf`
* 在文件末尾添加一行,允许来自特定 IP 的密码验证。`<version` 通常是 `14
📣 商家广告 :
👍
0
👎
IP地址: 40.179.12.35
搜索次数: 2
提问时间: 2025-11-12 08:04:58
🛒 域名购买 :
728.net.cn rj.biz 3.bj.cn xhkt.net dk.gs chxk.cn tc.gs 75.gold wangai.net zqll.cn
❓️ 热门提问 :
菏泽网店托管 日本vps哪家好 机房建设设备清单 免费的香港云主机 域名购买方式 石家庄网站托管 vps update 俄罗斯的云主机 42u机柜多重 虚拟主机 管理 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
3q.sc.cn mm.qh.cn vewq.cn oo.js.cn su7.tj.cn kqwn.cn k.sd.cn vivo.gx.cn hechaocheng.cn tieba.cyou
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
한국 검색 엔진 순위
广州日美月饼厂
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。