如何在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
相关产品推荐
相关产品推荐

