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) # 取消注释测试
相关推荐
OpsEye1 天前
数据库连接池爆了,这3个命令能救你一次
运维·数据库·后端
csdn小瓯1 天前
PostgreSQL迁移实战:从SQLite到生产级数据库的平滑演进
数据库·postgresql·sqlite
晚霞的不甘1 天前
CANN Catlass 矩阵乘模板库深度解析:高性能矩阵运算的进阶之路
人工智能·python·线性代数·矩阵
浪客灿心1 天前
mysql表的操作和数据类型
mysql
码云骑士1 天前
Redis 入门实战:从 NoSQL 概念到安装与基础操作详解(一)
数据库·redis·缓存
YL200404261 天前
MySQL-进阶篇-锁
数据库·mysql
爱喝水的鱼丶1 天前
SAP-ABAP:数据类型与数据对象(8篇) 第七篇:进阶优化篇——基于类型与对象特征的性能优化技巧
运维·数据库·学习·性能优化·sap·abap·开发交流
小白学大数据1 天前
深度探索:Python 爬虫实现豆瓣音乐全站采集
开发语言·爬虫·python·数据分析
用户6757049885021 天前
Celery 太重了?这可能是你一直在找的 asyncio 任务队列
后端·python·消息队列
Cloud_Shy6181 天前
Python 数据分析基础入门:《Excel Python:飞速搞定数据分析与处理》学习笔记系列(第十一章 Python 包跟踪器 下篇)
前端·后端·python·数据分析·excel