访问部署在云服务器的数据库指南
访问部署在云服务器(如简米云、酷番云、AWS 等)上的数据库,通常有三种主要方式,根据你的安全需求、网络环境以及使用的工具,可以选择最合适的方法。
直接远程连接(最便捷但风险较高)
这种方法允许你通过数据库客户端(如 Navicat、DBeaver、MySQL Workbench)直接通过公网 IP 连接数据库。
-
操作步骤:
- 配置云服务器安全组:登录云控制台,在安全组规则中放行数据库端口(MySQL 默认是
3306,PostgreSQL 是5432,Redis 是6379)。 - 修改数据库监听地址:确保数据库配置文件(如
my.cnf)中的bind-address设置为0.0.0,而不是0.0.1。 - 授予远程访问权限:在数据库内部为用户创建允许从特定 IP 或任意 IP () 登录的账号。
- MySQL 命令:
GRANT ALL PRIVILEGES ON db_name. TO 'user'@'%' IDENTIFIED BY 'password';
- MySQL 命令:
- 配置云服务器安全组:登录云控制台,在安全组规则中放行数据库端口(MySQL 默认是
-
缺点:数据库端口暴露在公网,容易遭受暴力破解和 DDoS 攻击。
通过 SSH 隧道连接(最推荐、最安全)
如果你不想将数据库端口暴露在公网,使用 SSH 隧道(SSH Tunneling) 是最佳实践,这种方式利用已有的 SSH 权限,将远程数据库端口映射到本地。
- 工作原理:你的数据库客户端先通过 SSH 协议连接到云服务器,然后在服务器内部通过本地回环地址(
0.0.1)访问数据库。 - 操作步骤:
- 准备 SSH 凭据:你需要云服务器的 IP 地址、SSH 端口(默认 22)以及 用户名/密码或 SSH 密钥。
- 配置客户端工具:
- 在 Navicat 或 DBeaver 的连接设置中,找到 SSH 选项卡。
- 输入服务器的 SSH 信息。
- 在 常规/基本选项卡 中,将主机地址填为
localhost或0.0.1(因为连接建立后,对于服务器来说,请求是从它自己发出的)。
- 优点:
- 安全性极高:无需在安全组开启数据库端口,只需开启 SSH 端口。
- 数据加密:所有流量都经过 SSH 加密传输。
通过云平台内网/VPC 访问(适用于应用服务器)
如果你的应用程序(如 Python、Java 程序)也部署在同一云厂商的云服务器上,应该使用内网 IP 进行访问。
- 操作步骤:
- 获取内网 IP:在云控制台查看数据库实例或服务器的 私有 IP(Private IP)。
- 配置安全组:在数据库的安全组中,设置允许来自应用服务器内网 IP 段的访问请求。
- 修改连接字符串:在代码中将数据库地址从公网 IP 改为内网 IP。
- 优点:
- 低延迟:内网传输速度极快。
- 零公网暴露:数据库完全不接触互联网,安全性最高。
- 节省流量费:云厂商通常对内网流量不计费或收费极低。
总结与安全建议
为了确保你的数据库安全,请务必遵循以下原则:
- 最小权限原则:不要给开发人员或应用程序分配
root权限,仅授予其完成工作所需的最小数据库权限。 - IP 白名单限制:如果必须使用方法一,请务必在安全组中指定具体的 IP 地址,严禁设置
0.0.0/0。 - 强制使用加密:尽可能开启数据库的 SSL/TLS 加密连接。
- 定期备份:无论连接方式如何,定期进行自动化数据备份是防止数据丢失的最后防线。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/494349.html



