小工具知识网

当前位置: 首页 > 行业知识 > Python 连接 mysql 详解(mysql-connector-python)

行业知识

Python 连接 mysql 详解(mysql-connector-python)

2026-11-08 18:27:43 来源:互联网转载

文章目录

  • 1 概述
    • 1.1 第三方库:mysql-connector-python
    • 1.2 可视化工具:navicat
    • 1.3 创建测试数据库
    • 2 连接 mysql 数据库
      • 2.1 创建一个连接
      • 2.2 捕获连接异常
      • 2.3 从配置文件中获取连接信息
      • 3 执行 sql 语句
        • 3.1 插入、更新、删除
        • 3.2 查询

          1 概述

          1.1 第三方库:mysql-connector-python

          pip install mysql-connector-python

          1.2 可视化工具:navicat

          1.3 创建测试数据库

          -- 创建数据库create database python_demo DEFAULT CHARSET utf8 COLLATE utf8_general_ci;-- 创建测试表create table python_demo.student(  sno      int unsigned auto_increment comment '学号',sname    varchar(30) not null comment '姓名',age      int comment '年龄',birthday date comment '出生日期',  primary key(sno)) engine=innodb default charset=utf8 comment '学生信息表';

          2 连接 mysql 数据库

          2.1 创建一个连接

          import mysql.connector# 配置连接信息conn = mysql.connector.connect(    host='127.0.0.1',    port='3306',    user='root',    password='12345',    database='python_demo')# 当前 mysql 版本号print(conn.get_server_version())

          2.2 捕获连接异常

          import mysql.connectorfrom mysql.connector import errorcodetry:    # 配置连接信息    conn = mysql.connector.connect(        host='127.0.0.1',        port='3306',        user='root',        password='12345',        database='python_demo'    )    # 当前 mysql 版本号    print(conn.get_server_version())    # 捕获异常except mysql.connector.Error as err:    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:        print('账号或密码错误!')    elif err.errno == errorcode.ER_BAD_DB_ERROR:        print('数据库不存在!')    else:        print(err)else:    # 关闭连接    conn.close()

          2.3 从配置文件中获取连接信息

          目录结构:

          config.ini:

          [mysql]host = 127.0.0.1port = 3306user = rootpassword = 12345database = python_demo

          m1.py:

          import mysql.connectorfrom mysql.connector import errorcodeimport configparser# 创建配置解析器对象config = configparser.ConfigParser()# 读取配置文件config.read('config.ini')try:    # 配置连接信息    conn = mysql.connector.connect(        host=config.get('mysql', 'host'),        port=config.get('mysql', 'port'),        user=config.get('mysql', 'user'),        password=config.get('mysql', 'password'),        database=config.get('mysql', 'database')    )    # 当前 mysql 版本号    print(conn.get_server_version())    # 捕获异常except mysql.connector.Error as err:    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:        print('账号或密码错误!')    elif err.errno == errorcode.ER_BAD_DB_ERROR:        print('数据库不存在!')    else:        print(err)else:    # 关闭连接    conn.close()

          3 执行 sql 语句

          3.1 插入、更新、删除

          • execute():用来执行 sql 语句,如:增删改查,存储过程等
          • commit():用来提交事务
            import mysql.connector# 配置连接信息conn = mysql.connector.connect(    host='127.0.0.1',    port='3306',    user='root',    password='12345',    database='python_demo')# 创建游标对象cursor = conn.cursor()# 操作数据:插入、修改、删除 同理,注:数据类型均可用 %s# 操作一条数据sql = 'insert into student(sname, age, birthday) values(%s, %s, %s);'param = ('张三', '18', '1994-12-08')cursor.execute(sql, param)# 操作多条数据sql = 'insert into student(sname, age, birthday) values(%s, %s, %s);'param = [('李四', '20', '1992-10-05'),         ('王五', '16', '1996-05-26'),         ('赵六', '08', '1994-05-26')]cursor.executemany(sql, param)# 提交数据conn.commit()# 关闭游标和数据库连接cursor.close()conn.close()

            3.2 查询

            import mysql.connector# 配置连接信息conn = mysql.connector.connect(    host='127.0.0.1',    port='3306',    user='root',    password='12345',    database='python_demo')# 创建游标对象cursor = conn.cursor()# 查询数据sql = 'select sno, sname, age, birthday from student where sno >= %s'param = (1,)cursor.execute(sql, param)result = cursor.fetchall()# 打印结果for row in result:    print(row)# 关闭游标和数据库连接cursor.close()conn.close()

上一篇:服务器怎么装微擎?

下一篇:莱卡云:香港BGP云服务器详细测评,原生香港IP仅需25元