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) # 取消注释测试
相关推荐
广州灵眸科技有限公司2 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
大模型码小白3 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
麻雀飞吧4 小时前
最新量化学习路径,交易认知和技术实现要并行
人工智能·python
Cloud云卷云舒4 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
憧憬成为web高手5 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学5 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh7 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
C^h7 小时前
python函数学习
人工智能·python·机器学习
用户71333585156247 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
Fanta丶7 小时前
4.Python set()集合、dict(字典、映射)、 数据容器的通用功能
python