云主机连接数据库全流程解析(安全稳定部署指南)
在云主机上部署应用,数据库连接是核心环节,作为站长,我深知正确解析数据库直接影响网站稳定与安全,以下是经过验证的操作流程:
1、数据库位置明确
* 数据库独立服务器(如云数据库RDS)
* 云主机内自建数据库(如安装MySQL)
关键获取数据库IP地址或域名
2、网络通道畅通
云主机与数据库需在同一VPC/内网(优先选择,延迟低更安全)
若跨网络/公网访问配置安全组/防火墙,开放数据库端口(如MySQL 3306)
3、有效连接凭证
* 数据库用户名(非云主机系统账号)
* 强密码
* 拥有权限的目标数据库名
云数据库(RDS) 在云平台控制台查找"内网地址"或"连接地址"。
自建数据库 登录云主机,使用hostname -I
或ip addr
查看内网IP。
云平台安全组
数据库所在安全组入方向规则允许来源(云主机内网IP/IP段)访问数据库端口。
云主机安全组出方向规则允许访问数据库端口。
服务器防火墙
在数据库服务器执行(以Ubuntu防火墙为例)
sudo ufw allow from <云主机内网IP> to any port 3306
根据开发语言配置数据库连接字符串:
PHP (PDO):
<?php $host = '数据库内网IP或域名'; // rm-bp1xxxx.mysql.rds.aliyuncs.com 或 172.16.0.8 $dbname = 'your_database'; $username = 'db_user'; $password = 'your_strong_password!'; $port = 3306; // 默认端口 try { $pdo = new PDO("mysql:host=$host;port=$port;dbname=$dbname;charset=utf8mb4", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 连接成功,执行操作... } catch (PDOException $e) { die("数据库连接失败: " . $e->getMessage()); } ?>
Node.js (MySQL2):
const mysql = require('mysql2/promise'); const pool = mysql.createPool({ host: '数据库内网IP或域名', user: 'db_user', password: 'your_strong_password!', database: 'your_database', port: 3306, waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); // 使用连接池查询 async function queryDB() { const [rows] = await pool.query('SELECT * FROM your_table'); return rows; }
Python (PyMySQL):
import pymysql connection = pymysql.connect( host='数据库内网IP或域名', user='db_user', password='your_strong_password!', database='your_database', port=3306, charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) try: with connection.cursor() as cursor: sql = "SELECTid
,title
FROMarticles
" cursor.execute(sql) result = cursor.fetchall() print(result) finally: connection.close()
1、绝不使用公网IP直连生产库(除非有强加密与IP白名单)
2、禁用数据库root远程登录,创建专用低权限应用账号
3、启用SSL加密传输(云数据库通常提供证书)
4、连接池管理:避免频繁创建销毁连接(如Node.js/Python示例)
5、敏感信息隔离:数据库密码应存储在环境变量或配置中心,禁止硬编码在代码中
>作为站长,我坚持将数据库部署与云主机分离(如使用云RDS),通过内网专线连接,这大幅简化了备份、扩容与高可用配置,服务器重启或迁移时数据库服务不受影响,安全组策略必须遵循最小权限原则——这是抵御未授权访问的第一道防线。
文章摘自:https://idc.huochengrm.cn/zj/11459.html
评论