Python 连接 MySQL 数据库步骤

一、前置准备

  1. 安装必要库 :Python 操作 MySQL 最常用且推荐的库是 mysql-connector-python(官方维护),也可以用 pymysql,这里以官方库为例。
    打开终端执行安装命令:

    bash 复制代码
    pip install mysql-connector-python
  2. 确认 MySQL 环境:确保你的电脑已安装 MySQL 服务,且知道连接信息(主机地址、端口、用户名、密码、数据库名)。

二、核心操作代码示例

1. 基础连接(最核心步骤)
python 复制代码
import mysql.connector
from mysql.connector import Error

def connect_mysql():
    """连接 MySQL 数据库"""
    connection = None
    try:
        # 配置连接参数
        connection = mysql.connector.connect(
            host='localhost',  # 数据库主机地址,本地填localhost
            port=3306,         # MySQL默认端口,若修改过需对应调整
            user='root',       # 你的MySQL用户名
            password='123456', # 你的MySQL密码
            database='test_db' # 要连接的数据库名(需提前创建)
        )
        if connection.is_connected():
            db_info = connection.get_server_info()
            print(f"成功连接MySQL服务器,版本:{db_info}")
            # 获取游标(用于执行SQL语句)
            cursor = connection.cursor()
            cursor.execute("select database();")
            record = cursor.fetchone()
            print(f"当前连接的数据库:{record}")
    except Error as e:
        print(f"连接失败:{e}")
    finally:
        # 关闭连接(重要,避免资源占用)
        if connection and connection.is_connected():
            cursor.close()
            connection.close()
            print("MySQL连接已关闭")

# 调用函数测试连接
connect_mysql()
2. 执行查询操作(读取数据)
python 复制代码
def query_data():
    """查询数据库中的数据"""
    try:
        connection = mysql.connector.connect(
            host='localhost',
            user='root',
            password='123456',
            database='test_db'
        )
        cursor = connection.cursor()
        # 执行查询SQL(示例:查询user表所有数据)
        query = "SELECT id, name, age FROM user"
        cursor.execute(query)
        # 获取所有查询结果
        records = cursor.fetchall()
        print(f"查询到 {cursor.rowcount} 条数据:")
        for row in records:
            print(f"ID: {row[0]}, 姓名: {row[1]}, 年龄: {row[2]}")
    except Error as e:
        print(f"查询失败:{e}")
    finally:
        if connection and connection.is_connected():
            cursor.close()
            connection.close()

# query_data() # 取消注释测试
3. 执行插入操作(写入数据)
python 复制代码
def insert_data(name, age):
    """插入数据到数据库"""
    try:
        connection = mysql.connector.connect(
            host='localhost',
            user='root',
            password='123456',
            database='test_db'
        )
        cursor = connection.cursor()
        # 插入SQL(使用占位符%s防止SQL注入)
        insert_query = "INSERT INTO user (name, age) VALUES (%s, %s)"
        # 要插入的数据
        data = (name, age)
        cursor.execute(insert_query, data)
        # 提交事务(插入/更新/删除必须提交,否则数据不生效)
        connection.commit()
        print(f"成功插入 {cursor.rowcount} 条数据")
    except Error as e:
        print(f"插入失败:{e}")
        # 出错时回滚事务
        connection.rollback()
    finally:
        if connection and connection.is_connected():
            cursor.close()
            connection.close()

# insert_data("张三", 25) # 取消注释测试
相关推荐
xj7573065331 天前
《python web开发 测试驱动方法》
开发语言·前端·python
厦门辰迈智慧科技有限公司1 天前
城市地下管网全域监测与安全防控整体解决方案
数据库·安全·物联网解决方案·地下管网监测·城市地下管网监测
叫我:松哥1 天前
基于Flask框架开发的智能旅游推荐平台,采用复合推荐算法,支持管理员、导游、普通用户三种角色
python·自然语言处理·flask·旅游·数据可视化·推荐算法·关联规则
小肖爱笑不爱笑1 天前
JDBC Mybatis
数据库·mybatis
No0d1es1 天前
2025年12月 GESP CCF编程能力等级认证Python四级真题
开发语言·python·青少年编程·等级考试·gesp·ccf
love530love1 天前
EPGF 新手教程 13在 PyCharm(中文版 GUI)中创建 Hatch 项目环境,并把 Hatch 做成“项目自包含”(工具本地化为必做环节)
开发语言·ide·人工智能·windows·python·pycharm·hatch
效率客栈老秦1 天前
Python Trae提示词开发实战(2):2026 最新 10个自动化批处理场景 + 完整代码
人工智能·python·ai·prompt·trae
cookqq1 天前
MySQL 5.7 大表删除部分数据:.ibd 文件会变小吗?磁盘会释放吗?
数据结构·数据库·mysql
IT 行者1 天前
告别硬编码!Spring Boot 优雅实现 Controller 路径前缀统一管理
数据库·spring boot·python