当前位置: 首页
编程语言
如何在Ubuntu上配置Python数据库

如何在Ubuntu上配置Python数据库

热心网友 时间:2026-05-04
转载

在 Ubuntu 上配置 Python 数据库

如何在Ubuntu上配置Python数据库

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

一 准备与通用步骤

想在Ubuntu上顺畅地玩转Python和数据库?别急,先把基础环境搭好。这个过程其实很标准,跟着做就行。

首先,更新系统并安装基础工具。打开终端,输入:

  • sudo apt update && sudo apt install -y python3 python3-pip

接下来,强烈建议使用虚拟环境来隔离项目依赖,这能避免未来各种版本冲突的“糟心事”。创建并激活虚拟环境的命令是:

  • python3 -m venv .venv && source .venv/bin/activate

环境准备好了,就该安装数据库驱动了。根据你选择的数据库类型,按需安装:

  • MySQLpip install mysql-connector-pythonpip install PyMySQL
  • PostgreSQLpip install psycopg2-binary
  • SQLite:Python 标准库自带,无需额外安装,省心省力。

如果你使用的是本地数据库服务(如MySQL或PostgreSQL),别忘了启动它们:

  • MySQLsudo systemctl start mysql && sudo systemctl enable mysql
  • PostgreSQLsudo systemctl start postgresql && sudo systemctl enable postgresql

最后,安全与账户配置是重中之重。以MySQL和PostgreSQL为例:

  • MySQL:运行 sudo mysql_secure_installation 进行安全初始化,然后用 mysql -u root -p 登录,创建专属的数据库和用户。
  • PostgreSQL:使用 sudo -u postgres psql 进入命令行,执行 CREATE DATABASE/USER/GRANT 等语句来配置。

二 按数据库类型的配置与示例

通用步骤走完,就该“分头行动”了。不同数据库的配置细节各有千秋,咱们一个个来看。

MySQL

安装与初始化一步到位:

  • sudo apt install -y mysql-server
  • sudo 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.connector
  • conn = 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()

PostgreSQL

安装同样简单:

  • sudo apt install -y postgresql postgresql-contrib

创建库与用户的示例流程如下:

  • sudo -u postgres psql
  • CREATE DATABASE mydb;
  • CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypass';
  • GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

Python连接示例(使用 psycopg2-binary):

  • import psycopg2
  • conn = 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

SQLite的特点是零配置、文件型数据库,无需安装和启动任何服务器,非常适合轻量级应用或开发测试。

Python连接示例直接上手:

  • import sqlite3
  • conn = 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()

三 远程连接与安全加固

当应用需要从其他服务器访问数据库时,就得配置远程连接了。但切记,开放远程访问必须同步做好安全加固。

启用远程访问的配置示例如下:

  • MySQL:编辑 /etc/mysql/mysql.conf.d/mysqld.cnf,找到并设置 bind-address = 0.0.0.0,然后重启服务:sudo systemctl restart mysql
  • PostgreSQL:编辑 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)

说到安全,有几个核心建议必须牢记:

  • 使用强密码,并严格限制可访问的来源IP地址。
  • 为每个应用创建专属的数据库账户,并遵循最小权限原则。
  • 在生产环境中,强烈建议启用SSL/TLS加密传输通道。
  • 建立定期更新系统与数据库软件、备份数据以及监控日志的良好习惯。

四 常见问题排查

配置过程中难免会遇到些“小麻烦”,这里梳理了几个常见问题的排查思路:

  • 服务未启动:先用 systemctl status mysql/postgresql 查看状态与日志,必要时执行 sudo systemctl restart 重启服务。
  • 连接被拒绝或超时:请依次核对连接的主机地址(host)、端口(port)是否正确;确认数据库服务是否监听在 0.0.0.0;检查云服务器的安全组或本机防火墙(如UFW)是否已放行对应端口。
  • 权限不足:检查数据库用户是否通过 GRANT 语句获得了目标数据库的足够权限。
  • 客户端库安装失败:优先尝试安装二进制包(如 psycopg2-binary);确认虚拟环境已激活,且 pip 命令对应正确的 Python 版本;如果还不行,可能需要安装系统级依赖(例如 libpq-devmysql-client 等)。
来源:https://www.yisu.com/ask/87964304.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Linux下C++如何处理多线程同步

Linux下C++如何处理多线程同步

Linux下C++多线程同步:从互斥锁到屏障的实战指南 在Linux平台上用C++搞多线程开发,线程同步是个绕不开的核心议题。处理不好,数据竞争、死锁这些“坑”随时可能出现。那么,有哪些趁手的同步工具可供选择呢?它们的典型用法又是怎样的? 下面,我们就来梳理几种C++标准库中常用的线程同步机制,并配

时间:2026-05-04 22:48
C++在Linux上如何进行文件操作

C++在Linux上如何进行文件操作

在Linux上使用C++进行文件操作 说到在Linux环境下用C++处理文件,这个标准库头文件绝对是你的首选工具箱。它封装了一套直观的输入输出流接口,让文件读写变得像控制台输入输出一样顺手。下面,咱们就通过几个典型的场景,来看看它的基本用法。 1 打开文件 操作文件的第一步,自然是打开它。这里用s

时间:2026-05-04 22:48
Linux C++如何提高代码执行效率

Linux C++如何提高代码执行效率

在Linux环境下提升C++代码执行效率:一份实战指南 在Linux平台上用C++开发高性能应用,效率是绕不开的核心议题。代码反赌不快,往往直接决定了系统的吞吐能力和响应速度。那么,如何才能让C++程序在Linux环境下“火力全开”呢?这需要我们从算法选择、代码编写、编译器调优,一直到系统资源管理,

时间:2026-05-04 22:47
C++ Linux系统中怎样调试程序

C++ Linux系统中怎样调试程序

在Linux系统中,有多种方法可以用来调试C++程序 对于在Linux环境下进行C++开发的工程师来说,调试是绕不开的一环。面对复杂的逻辑或隐秘的Bug,手头没有几件趁手的工具可不行。好在Linux生态提供了丰富且强大的调试选项,从经典的命令行工具到现代的集成环境,再到专门的内存和性能分析器,足以应

时间:2026-05-04 22:47
Debian系统下Go语言打包有哪些注意事项

Debian系统下Go语言打包有哪些注意事项

在Debian系统下使用Go语言进行打包时,需要注意以下几个方面 将Go应用打包部署到Debian系统,看似是常规操作,但其中有不少细节值得推敲。处理得当,部署过程行云流水;忽略某些环节,则可能遇到意想不到的麻烦。下面就来梳理一下整个流程中的关键点。 1 环境准备 万事开头难,打好基础是关键。 安

时间:2026-05-04 22:47
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程