Debian 上使用 Python 连接数据库的完整操作指南
一 环境准备
sudo apt update && sudo apt install -y python3 python3-pippython3 -m venv venv && source venv/bin/activate二 安装驱动与准备数据库
| 数据库 | 驱动与安装 | 备注 |
|---|---|---|
| MySQL | pip3 install mysql-connector-python 或 pip3 install PyMySQL;系统包可用 python3-mysqldb |
远程访问需授权并开放端口 |
| PostgreSQL | pip3 install psycopg2-binary(或 psycopg2);系统包可用 python3-psycopg2 |
建议先安装 libpq-dev 再编译 |
| SQLite | 无需安装(Python 标准库 sqlite3) |
文件型数据库,零配置 |
sudo apt install -y libpq-devsudo systemctl start mysqlsudo systemctl start 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-python 或 pip3 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 mysql 或 sudo systemctl start postgresql 已执行;必要时设置开机自启。pg_hba.conf、MySQL 的授权与 bind-address)。libpq-dev 再 pip3 install psycopg2,或直接用 psycopg2-binary。GRANT ALL PRIVILEGES ON DATABASE db TO user;)。