您的位置:首页 >Debian Python数据库连接如何操作
发布于2026-04-26 阅读(0)
扫一扫,手机访问

在 Debian 系统上,用 Python 连接数据库是开发中的高频操作。这事儿说简单也简单,但想做得专业、不出错,还真有几个关键步骤得捋清楚。下面这份指南,就帮你把从环境准备到问题排查的全流程,一次性讲明白。
工欲善其事,必先利其器。动手之前,先把基础环境搭建好。
sudo apt update && sudo apt install -y python3 python3-pippython3 -m venv venv && source venv/bin/activate数据库种类繁多,对应的 Python 驱动也不同。选对、装对驱动,是成功连接的第一步。
| 数据库 | 驱动与安装 | 备注 |
|---|---|---|
| MySQL | pip3 install mysql-connector-python 或 pip3 install PyMySQL;系统包可用 python3-mysqldb |
远程访问需授权并开放端口 |
| PostgreSQL | pip3 install psycopg2-binary(或 psycopg2);系统包可用 python3-psycopg2 |
建议先安装 libpq-dev 再编译 |
| SQLite | 无需安装(Python 标准库 sqlite3) |
文件型数据库,零配置 |
psycopg2(非二进制版),这个库必不可少。
sudo apt install -y libpq-devsudo systemctl start mysqlsudo systemctl start postgresql驱动装好了,服务也跑起来了,接下来就是实战代码。这里有几个通用原则,无论连接哪种数据库都适用:
%s、%({name})s 这类占位符,这是防止 SQL 注入攻击的生命线。commit();查询完毕,及时调用 fetch*() 获取结果并关闭游标和连接,释放资源。下面,我们分别看看三种主流数据库的具体连接方法。
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 安装,二者选一即可。
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,省去编译麻烦。如果坚持从源码安装,务必先执行 sudo apt install libpq-dev。
import sqlite3
conn = sqlite3.connect('example.db')
cur = conn.cursor()
cur.execute("SELECT sqlite_version();")
print("SQLite version:", cur.fetchone())
conn.close()
看,这就是 SQLite 的便利之处——无需任何额外安装,Python 自带开箱即用,非常适合本地测试和轻量级应用场景。
连接过程很少一帆风顺,遇到问题别慌,按这个清单一步步排查,十有八九能找到症结。
sudo systemctl start mysql 或 sudo systemctl start postgresql。如果想一劳永逸,可以设置服务开机自启。pg_hba.conf 文件,MySQL 的用户授权和 bind-address 设置,都需要允许来自你当前主机的连接。psycopg2 时,如果报错,大概率是缺少开发库。记住这个组合拳:先 sudo apt install libpq-dev,再 pip3 install psycopg2。或者,更简单点,直接安装预编译的 psycopg2-binary。GRANT ALL PRIVILEGES ON DATABASE db TO user; 的命令。下一篇:如何在nginx中配置静态资源
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9