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) # 取消注释测试
相关推荐
怣502 分钟前
MySQL多表连接:全外连接、交叉连接与结果集合并详解
数据库·sql
摘星编程17 分钟前
深入理解CANN ops-nn BatchNormalization算子:训练加速的关键技术
python
魔芋红茶18 分钟前
Python 项目版本控制
开发语言·python
wjhx23 分钟前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
lili-felicity25 分钟前
CANN批处理优化技巧:从动态批处理到流水线并行
人工智能·python
一个有梦有戏的人27 分钟前
Python3基础:进阶基础,筑牢编程底层能力
后端·python
冰暮流星34 分钟前
javascript之二重循环练习
开发语言·javascript·数据库
摘星编程44 分钟前
解析CANN ops-nn中的Transpose算子:张量维度变换的高效实现
python
Liekkas Kono1 小时前
RapidOCR Python 贡献指南
开发语言·python·rapidocr
万岳科技系统开发1 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法