您的位置:首页 >如何在Ubuntu上配置Python数据库
发布于2026-05-01 阅读(0)
扫一扫,手机访问

想在Ubuntu上顺畅地玩转Python和数据库?别急,先把基础环境搭好。这个过程其实很标准,跟着做就行。
首先,更新系统并安装基础工具。打开终端,输入:
sudo apt update && sudo apt install -y python3 python3-pip接下来,强烈建议使用虚拟环境来隔离项目依赖,这能避免未来各种版本冲突的“糟心事”。创建并激活虚拟环境的命令是:
python3 -m venv .venv && source .venv/bin/activate环境准备好了,就该安装数据库驱动了。根据你选择的数据库类型,按需安装:
pip install mysql-connector-python 或 pip install PyMySQLpip install psycopg2-binary如果你使用的是本地数据库服务(如MySQL或PostgreSQL),别忘了启动它们:
sudo systemctl start mysql && sudo systemctl enable mysqlsudo systemctl start postgresql && sudo systemctl enable postgresql最后,安全与账户配置是重中之重。以MySQL和PostgreSQL为例:
sudo mysql_secure_installation 进行安全初始化,然后用 mysql -u root -p 登录,创建专属的数据库和用户。sudo -u postgres psql 进入命令行,执行 CREATE DATABASE/USER/GRANT 等语句来配置。通用步骤走完,就该“分头行动”了。不同数据库的配置细节各有千秋,咱们一个个来看。
安装与初始化一步到位:
sudo apt install -y mysql-serversudo mysql_secure_installation接着,在MySQL命令行中创建库与用户(以下为示例):
CREATE DATABASE mydb CHARACTER SET utf8mb4;CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';FLUSH PRIVILEGES;配置妥当后,用Python连接测试一下。这里以 mysql-connector-python 驱动为例:
import mysql.connectorconn = mysql.connector.connect(host='localhost', user='myuser', password='mypass', database='mydb')cur = conn.cursor(); cur.execute('SELECT 1'); print(cur.fetchone()); cur.close(); conn.close()安装同样简单:
sudo apt install -y postgresql postgresql-contrib创建库与用户的示例流程如下:
sudo -u postgres psqlCREATE DATABASE mydb;CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypass';GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;Python连接示例(使用 psycopg2-binary):
import psycopg2conn = psycopg2.connect(dbname='mydb', user='myuser', password='mypass', host='localhost')cur = conn.cursor(); cur.execute('SELECT 1'); print(cur.fetchone()); cur.close(); conn.close()SQLite的特点是零配置、文件型数据库,无需安装和启动任何服务器,非常适合轻量级应用或开发测试。
Python连接示例直接上手:
import sqlite3conn = sqlite3.connect('mydb.db')cur = conn.cursor(); cur.execute('CREATE TABLE IF NOT EXISTS t(id INTEGER PRIMARY KEY, name TEXT)')cur.execute("INSERT INTO t(name) VALUES (?)", ('Alice',)); conn.commit()cur.execute('SELECT * FROM t'); print(cur.fetchall()); conn.close()当应用需要从其他服务器访问数据库时,就得配置远程连接了。但切记,开放远程访问必须同步做好安全加固。
启用远程访问的配置示例如下:
/etc/mysql/mysql.conf.d/mysqld.cnf,找到并设置 bind-address = 0.0.0.0,然后重启服务:sudo systemctl restart mysql。postgresql.conf 设置 listen_addresses = '*';同时在 pg_hba.conf 中添加规则,例如 host all all 0.0.0.0/0 md5;最后重启:sudo systemctl restart postgresql。别忘了配置防火墙,放行对应的数据库端口:
sudo ufw allow 3306/tcp (MySQL)sudo ufw allow 5432/tcp (PostgreSQL)说到安全,有几个核心建议必须牢记:
配置过程中难免会遇到些“小麻烦”,这里梳理了几个常见问题的排查思路:
systemctl status mysql/postgresql 查看状态与日志,必要时执行 sudo systemctl restart 重启服务。0.0.0.0;检查云服务器的安全组或本机防火墙(如UFW)是否已放行对应端口。GRANT 语句获得了目标数据库的足够权限。psycopg2-binary);确认虚拟环境已激活,且 pip 命令对应正确的 Python 版本;如果还不行,可能需要安装系统级依赖(例如 libpq-dev、mysql-client 等)。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9