如何用Python应用访问托管网站的MySQL数据库?及OVH套餐兼容性确认
解决方案:Python访问在线MySQL数据库 + OVH套餐验证
一、Python连接在线MySQL数据库的实现步骤
1. 前置配置
- 开启数据库远程访问:登录OVH数据库管理面板,找到「远程访问」选项,将Python运行设备的公网IP加入白名单(测试阶段可临时设为
0.0.0.0/0,正式环境务必改为固定IP)。 - 收集数据库核心信息:主机地址(OVH提供的数据库域名,如
mysqlXXX.ovh.net)、端口(默认3306)、数据库名、用户名、密码。
2. 安装Python依赖
通过pip安装MySQL连接库,推荐使用mysql-connector-python:
pip install mysql-connector-python
3. 核心代码实现
import mysql.connector import json import os # 数据库配置(正式环境建议用环境变量存储密码) DB_CONFIG = { 'host': '你的OVH数据库主机地址', 'user': '数据库用户名', 'password': os.getenv('DB_PASSWORD'), # 从环境变量取密码 'database': '数据库名', 'port': 3306 } def process_data(): conn = None cursor = None try: # 建立数据库连接 conn = mysql.connector.connect(**DB_CONFIG) cursor = conn.cursor(dictionary=True) # 1. 查询特定数据(替换为你的业务条件) fetch_query = "SELECT * FROM 目标表 WHERE 筛选字段 = %s" cursor.execute(fetch_query, ('目标值',)) target_data = cursor.fetchall() if not target_data: print("无符合条件的数据") return # 2. 存储数据到本地(以JSON格式为例) with open('本地存储文件.json', 'w', encoding='utf-8') as f: json.dump(target_data, f, ensure_ascii=False, indent=2) print(f"已存储{len(target_data)}条数据到本地") # 3. 删除数据库中已提取的数据(先确认本地存储成功再执行) delete_query = "DELETE FROM 目标表 WHERE 筛选字段 = %s" cursor.execute(delete_query, ('目标值',)) conn.commit() print(f"已从数据库删除{cursor.rowcount}条数据") except mysql.connector.Error as err: print(f"数据库错误: {err}") if conn: conn.rollback() # 出错则回滚事务 finally: # 关闭连接资源 if cursor: cursor.close() if conn: conn.close() if __name__ == "__main__": process_data()
4. 关键注意事项
- 必须使用参数化查询(如代码中的
%s占位符),避免SQL注入风险。 - 操作要保证原子性:本地存储失败时,务必回滚删除操作,防止数据丢失。
- 敏感信息(如数据库密码)不要硬编码,用环境变量或加密配置文件管理。
二、OVH基础套餐兼容性确认
OVH最便宜的托管套餐(如Web Hosting Start)完全满足需求,核心支持点:
- 提供MySQL数据库(存储空间通常5GB起步,足够小型项目使用)。
- 支持配置数据库远程IP白名单,允许外部程序连接。
- 默认开放MySQL标准端口3306,无需额外申请。
若有疑问,可直接在OVH控制面板查看套餐详情,或联系客服确认两个核心点:数据库远程访问权限、端口开放状态。
内容的提问来源于stack exchange,提问作者Yedenn
相关产品推荐
相关产品推荐

