首页主机资讯Debian Python数据库连接如何操作

Debian Python数据库连接如何操作

时间2025-12-03 10:46:04发布访客分类主机资讯浏览1012
导读:Debian 上使用 Python 连接数据库的完整操作指南 一 环境准备 更新系统并安装基础工具: 命令:sudo apt update && sudo apt install -y python3 python3-p...

Debian 上使用 Python 连接数据库的完整操作指南

一 环境准备

  • 更新系统并安装基础工具:
    • 命令:sudo apt update & & sudo apt install -y python3 python3-pip
  • 建议使用虚拟环境隔离依赖:
    • 命令:python3 -m venv venv & & source venv/bin/activate
  • 在虚拟环境中安装所需数据库驱动(见下表)。

二 安装驱动与准备数据库

  • 常见数据库与驱动安装一览:
数据库 驱动与安装 备注
MySQL pip3 install mysql-connector-pythonpip3 install PyMySQL;系统包可用 python3-mysqldb 远程访问需授权并开放端口
PostgreSQL pip3 install psycopg2-binary(或 psycopg2);系统包可用 python3-psycopg2 建议先安装 libpq-dev 再编译
SQLite 无需安装(Python 标准库 sqlite3 文件型数据库,零配置
  • 安装 PostgreSQL 开发库(编译 psycopg2 时常用):sudo apt install -y libpq-dev
  • 启动数据库服务(若本机安装):
    • MySQL:sudo systemctl start mysql
    • PostgreSQL:sudo systemctl start postgresql
  • 防火墙放行端口(如启用防火墙):3306(MySQL)5432(PostgreSQL)

三 连接与操作示例

  • 通用要点:

    • 使用参数化查询防注入(如 %s%({ name} )s 占位符)。
    • 写入操作需 commit();查询后及时 fetch*() 与关闭游标/连接。
    • 生产环境建议用环境变量或配置文件管理凭据,避免硬编码。
  • MySQL 示例(mysql-connector-python)

    import mysql.connector
    from mysql.connector import Error
    
    config = {
    
        'user': 'your_username',
        'password': 'your_password',
        'host': '127.0.0.1',
        'database': 'your_database',
        'raise_on_warnings': True
    }
        
    
    try:
        cnx = mysql.connector.connect(**config)
        cur = cnx.cursor()
        cur.execute("SELECT VERSION()")
        print("MySQL version:", cur.fetchone())
    except Error as e:
        print("MySQL error:", e)
    finally:
        if cnx.is_connected():
            cur.close()
            cnx.close()
    

    可用 pip3 install mysql-connector-pythonpip3 install PyMySQL 安装驱动。

  • PostgreSQL 示例(psycopg2)

    import psycopg2
    
    try:
        conn = psycopg2.connect(
            dbname="your_database",
            user="your_username",
            password="your_password",
            host="127.0.0.1",
            port="5432"
        )
        cur = conn.cursor()
        cur.execute("SELECT version();
        ")
        print("PostgreSQL version:", cur.fetchone())
    except Exception as e:
        print("PostgreSQL error:", e)
    finally:
        if conn:
            cur.close()
            conn.close()
    

    推荐:pip3 install psycopg2-binary;若从源码编译,先装 libpq-dev

  • SQLite 示例(内置模块)

    import sqlite3
    
    conn = sqlite3.connect('example.db')
    cur = conn.cursor()
    cur.execute("SELECT sqlite_version();
        ")
    print("SQLite version:", cur.fetchone())
    conn.close()
    

    SQLite 无需额外安装,适合本地测试与轻量场景。

四 常见问题与排查

  • 服务未启动:确认 sudo systemctl start mysqlsudo systemctl start postgresql 已执行;必要时设置开机自启。
  • 连接被拒绝或超时:
    • 核对 hostport用户名密码数据库名
    • 检查数据库是否允许来自当前主机的连接(如 PostgreSQL 的 pg_hba.conf、MySQL 的授权与 bind-address)。
    • 防火墙放行 3306/5432
  • 驱动安装失败(psycopg2 编译问题):先安装 libpq-devpip3 install psycopg2,或直接用 psycopg2-binary
  • 权限不足:在数据库中为对应用户授予所需权限(如 GRANT ALL PRIVILEGES ON DATABASE db TO user; )。
  • 凭据安全:不要硬编码,使用环境变量或配置文件管理敏感信息。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian Python数据库连接如何操作
本文地址: https://pptw.com/jishu/762141.html
Debian Python多线程编程如何应用 Debian Java内存溢出怎么处理

游客 回复需填写必要信息