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) # 取消注释测试
相关推荐
十二同学啊14 分钟前
向量数据库:从核心原理到 RAG 与 Java 实战
数据库
蓝速科技1 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
GPU实战笔记1 小时前
云端 Python 开发:JupyterLab 还是 VS Code Remote-SSH?
python·vs code·jupyterlab·remote-ssh·远程开发
大海星辰7982 小时前
一次对账SQL“灵异事件”排查:NOT IN返回空集的坑
mysql
狗狗狗狗狗乐啊2 小时前
搭一个 AI 对话工作台 AChat:从 0 到可用的完整记录(一)
python·react.js·ai编程
Linux-lucky2 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
白猫不黑2 小时前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
kuuailetianzi3 小时前
Python初识:定位、优势与发展历程
python
guoran_shini3 小时前
LLM微调-训练垂类问答模型
python·lora·sft
basketball6163 小时前
Python FastAPI 介绍以及常用方法
python·fastapi·vllm·ai infra