温馨提示×

ubuntu python如何连数据库

小樊
43
2026-09-19 14:34:48
栏目: 编程语言

在 Ubuntu 上用 Python 连接数据库,通常分为 安装数据库驱动 和 写 Python 代码连接 两部分。下面以常见数据库为例说明。


一、通用前置准备(Ubuntu)

  1. 安装 Python 和 pip
sudo apt update
sudo apt install python3 python3-pip
  1. 创建虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate

二、常见数据库连接示例

1️⃣ MySQL / MariaDB

安装驱动

pip install pymysql
# 或
pip install mysql-connector-python

示例代码(PyMySQL)

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='your_password',
    database='test_db',
    charset='utf8mb4'
)

cursor = conn.cursor()
cursor.execute("SELECT VERSION()")
print(cursor.fetchone())

cursor.close()
conn.close()

2️⃣ PostgreSQL

安装驱动

pip install psycopg2-binary

示例代码

import psycopg2

conn = psycopg2.connect(
    host='localhost',
    user='postgres',
    password='your_password',
    dbname='test_db'
)

cur = conn.cursor()
cur.execute("SELECT version()")
print(cur.fetchone())

cur.close()
conn.close()

3️⃣ SQLite(无需安装数据库)

Python 内置支持

import sqlite3

conn = sqlite3.connect('test.db')
cursor = conn.cursor()
cursor.execute("SELECT sqlite_version()")
print(cursor.fetchone())

conn.close()

4️⃣ Redis(非关系型)

pip install redis
import redis

r = redis.Redis(host='localhost', port=6379, db=0)
r.set('name', 'ubuntu')
print(r.get('name'))

三、常见问题

❓ 连接被拒绝

  • 数据库是否启动
sudo systemctl status mysql
  • 是否允许远程连接(bind-address)
  • 防火墙是否放行端口

❓ 找不到模块

pip install 模块名

四、推荐做法(生产环境)

  • 使用 ORM:SQLAlchemy / Django ORM
  • 使用 连接池
  • 密码不要写死在代码里(用环境变量)

如果你告诉我:

  • 用的是哪种数据库(MySQL / PostgreSQL / 其他)
  • Ubuntu 版本
  • 是否本地或远程连接

我可以给你更精确的配置步骤。

0 踩