You need to enable JavaScript to run this app. 如何在CentOS 7的EC2实例中将已有的Python应用连接到数据库
优惠活动
大模型
产品
解决方案
定价
更多

如何在CentOS 7的EC2实例中将已有的Python应用连接到数据库

CentOS 7 环境下Python应用连接MySQL操作指引

1. 安装系统前置依赖

首先执行以下命令安装编译需要的系统依赖包:

yum update -y
yum install -y python3-devel mysql-devel gcc

如果还没安装pip3,额外执行:

yum install -y python3-pip

2. 安装Python MySQL连接驱动

推荐使用官方驱动mysql-connector-python,执行命令:

pip3 install mysql-connector-python

如果偏好轻量驱动,也可以安装pymysql:

pip3 install pymysql

3. 验证网络连通性

在操作应用前先确认EC2到数据库的网络是通的:

  • 确认数据库侧安全组/防火墙已经放通EC2实例IP的3306端口入方向规则
  • 确认CentOS 7本地防火墙放通3306端口出方向,执行测试命令:
nc -zv 你的数据库地址 3306

返回succeeded字样即为网络连通,否则先排查网络策略问题。

4. 修改Python脚本连接逻辑

在你的helo.mysql.py中加入数据库连接代码,示例如下:

import mysql.connector
from mysql.connector import Error

# 以下配置替换为你的实际数据库信息
DB_CONFIG = {
    "host": "数据库内网/公网地址",
    "user": "数据库用户名",
    "password": "数据库密码",
    "database": "目标数据库名"
}

try:
    conn = mysql.connector.connect(**DB_CONFIG)
    if conn.is_connected():
        # 连接成功后编写你的业务逻辑
        print("数据库连接成功")
        cursor = conn.cursor()
        # 示例:执行查询
        cursor.execute("SELECT VERSION()")
        print("MySQL版本:", cursor.fetchone()[0])
except Error as e:
    print("连接失败,错误信息:", e)
finally:
    # 用完关闭连接避免资源泄露
    if 'conn' in locals() and conn.is_connected():
        cursor.close()
        conn.close()

5. 测试运行

执行脚本验证连接效果:

python3 helo.mysql.py

常见问题排查

  • 提示Access denied for user:检查用户名、密码是否正确,确认数据库账号允许从你的EC2IP地址登录
  • 提示Connection refused:检查数据库是否启动,是否监听对应地址的3306端口
  • 提示ModuleNotFoundError: No module named 'mysql':确认驱动安装使用的pip和执行脚本用的python3属于同一环境,可执行pip3 list | grep mysql验证驱动是否安装成功

内容的提问来源于stack exchange,提问作者omied badr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 12:27:01