找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2192

积分

0

好友

314

主题
发表于 15 小时前 | 查看: 3| 回复: 0

MySQL/MariaDB/SQLite数据库对比示意图

许多树莓派项目都需要一个数据库系统来存储和调用数据。实际上,在树莓派上托管数据库本身就可以是一个完整的项目,因为选择众多,而做出选择并非易事。本文将梳理几种最流行的解决方案,分析各自的优缺点,帮助您根据项目需求做出最佳决策。

总的来说,没有一款数据库管理系统能完美适配树莓派上的所有用例。这很大程度上是一种个人选择:每个系统都有其优势和局限,最终决定应基于项目目标与开发者的技术栈。例如,作为一名 Web 开发者,我倾向于使用自己熟悉的技术组合(包括编程语言和数据库),这并非因为它们“最好”,而是因为使用熟练的工具能极大提高开发效率。如果您尚无特定偏好,那么了解有哪些选择就显得尤为重要。

MariaDB (MySQL)

MariaDB Foundation 卡通形象标志

MariaDB 是 MySQL 的一个免费开源分支,诞生于甲骨文公司收购 Sun(及 MySQL)之后。自那时起,它取得了长足进步,如今在新安装 MySQL 服务器时,MariaDB 几乎是默认之选。

尽管面临诸多挑战者,MySQL 系列在数据库领域的领导地位依然稳固。我在 YouTube 频道上进行的一项调查显示,近 70% 的粉丝仍然推荐在树莓派上使用它:

树莓派最佳数据库投票结果截图

MariaDB 是存储大量数据的绝佳选择,尤其当您需要管理具有不同权限集的多个用户时。它常被用于 Web 项目(通常与 PHP 语言搭配使用)。它在近期树莓派型号上运行良好,适合中小型数据库,但对于较旧的型号或树莓派 Zero 来说可能略显沉重。

MySQL、SQLite、MongoDB、PostgreSQL全球搜索趋势对比图

查看谷歌趋势,MySQL 依然是最受欢迎的解决方案,这意味着在为项目使用该数据库系统时,您可以轻松找到文档、论坛和帮助。MariaDB/MySQL 使用 SQL 进行查询,SQL 也是最流行的数据库查询语言,因此在尝试进行复杂查询时,寻找相关资源不会有任何困难。

作为一名主要使用 MySQL 和 PHP 的 Web 开发人员,它通常是我开启新项目的默认选择。我很少因此陷入困境,所以在大多数情况下,我都会推荐它。

安装

MariaDB 在树莓派操作系统和大多数基于 Debian 的发行版的默认软件源中都有提供,因此安装相对简单。它是本文列表中少数几个以客户端/服务器模式运行的解决方案之一,这意味着您必须先安装服务器。

如果需要,您也可以在不同的树莓派或计算机上安装 MySQL 服务器。如果您的项目运行在资源非常有限的树莓派型号上,但可以访问另一台运行 MySQL 服务器的设备,这也是一种可行的方案。

如果尚未安装,请按照以下步骤在树莓派上进行安装:

首先更新系统:

sudo apt update
sudo apt upgrade

然后安装 MariaDB 服务器:

sudo apt install mariadb-server

安装 mariadb-server 的终端截图

安装完成后,还需要进行创建 root 密码和首个用户等额外配置步骤。由于 MariaDB/MySQL 可以处理不同级别的权限,对初学者来说可能稍显复杂,但网上有丰富的教程可以帮助您快速上手。此外,还有一些图形化工具可以帮助您管理 MySQL 服务器,而无需输入大量命令和 SQL 查询,关于数据库和中间件的更多深入讨论,可以在 云栈社区的数据库/中间件/技术栈 板块找到。

使用

一旦服务器安装就绪,您几乎可以用任何编程语言访问 MySQL 服务器。您可能需要安装额外的软件包,并且可以轻松找到针对您所用语言的帮助。

例如,如果您使用 PHP 创建 Web 项目,则需要安装以下软件包以连接到新的 MySQL 服务器:

sudo apt install php-mysql

安装后,您就可以使用 PHP 官方手册中列出的所有相关函数。

在 Python 中,您可以使用 PIP 安装 MariaDB 连接器:

sudo pip3 install mariadb

SQLite

SQLite 标志

SQLite 是 MySQL 的一个有趣替代品,特别是在树莓派上。这个数据库系统要轻量得多(因此得名)。安装它所需空间不到 1 MB,而 MariaDB 则需要近 200 MB 的各种软件包。

SQLite 是一个无服务器的、独立的数据库系统。它有许多限制,对于大型项目可能构成问题(例如,单用户、无身份验证),但对于家庭环境中的小型项目而言,它通常是最简单的入门方式。

简而言之,SQLite 非常适合数据量有限且无需网络连接的独立小型项目。

注意:TinyDB 是另一个值得考虑的替代品,与 SQLite 非常相似。它比 SQLite 还要轻量。对于小型树莓派项目,您大多时候可能不需要它缺失的那些功能。

安装

要在树莓派操作系统(或任何基于 Debian 的发行版)上安装 SQLite,只需运行以下命令:

sudo apt install sqlite3

然后,您可以使用 sqlite3 命令来创建数据库并与之交互。

以下是一个完整的交互示例:

SQLite3 数据库创建、建表、插入与查询操作终端截图

如图所示,只需在 sqlite3 命令后指定数据库文件路径即可。如果文件不存在,它将自动创建。之后,您可以直接使用 SQL 命令来创建表、插入数据并进行查询。您需要了解 SQL 语言,其他操作都非常简单直接。

使用

与 MariaDB 类似,您需要安装连接器以便从项目代码中访问 SQLite 数据库。

  • 使用 PHP:
sudo apt install php-sqlite3

安装后,您可以使用 PHP 的 SQLite3 相关函数。

  • 使用 Python: 通常已内置支持,以下是一个基本示例:

Python 连接 SQLite 数据库并查询的代码截图

请记住,这个解决方案缺乏安全性、用户管理和权限控制。它的优势在于易于设置和快速上手,但请不要将其用于存储敏感数据的大型项目。

MongoDB

MongoDB 标志

MongoDB 与前面提到的选项非常不同。它是一个非关系型数据库管理系统,意味着数据存储方式非常灵活。基本上是键值对的组合,值可以是任何类型(字符串、数组、对象等)。

它不使用 SQL 语言或其变体,而是使用 MQL(MongoDB 查询语言),这可能与您习惯的语言完全不同。

总的来说,当您没有 MySQL 经验(有些人认为从 MongoDB 开始比从 MySQL 更容易),并且需要更大灵活性时(例如,项目需求尚未完全定义,未来可能发生较大变化),它是一个不错的选择。

安装

在树莓派操作系统上安装 MongoDB 比较复杂,因为它不在默认软件源中,而且官方网站也没有提供预编译的 ARM 架构软件包。

唯一的选择是按照官方文档从源代码编译。这个过程耗时较长,且可能导致系统不稳定,因此不太推荐。还有一个 GitHub 上的“Mongo for Pi”项目,但未经广泛测试。

在树莓派上获取 MongoDB 的最简单方法是先安装 Ubuntu 系统,然后按照 MongoDB 官方文档添加软件源并执行后续配置步骤。

MongoDB Docs 网站介绍页面截图

使用

一旦 MongoDB 安装完毕并创建了第一个数据库,在树莓派上使用它与其他方案没有太大区别。

例如,要使用 Python 连接到 MongoDB,首先需要安装对应的库:

sudo apt install python3-pymongo

然后,您就可以在脚本中导入 pymongo 并使用其提供的函数。

PostgreSQL

PostgreSQL 标志

PostgreSQL 是企业环境中最受欢迎的数据库之一。与 MySQL 的主要区别在于,PostgreSQL 是一个面向对象的数据库,而 MySQL 是关系型数据库。PostgreSQL 通常被推荐用于复杂查询、大型数据仓库和数据分析。

它与 MySQL 竞争已久。从趋势上看,MySQL/MariaDB 似乎更胜一筹,但 PostgreSQL 的态势也非常稳定,这表明仍有大量开发者在持续使用它:

MySQL 与 PostgreSQL 全球搜索兴趣趋势对比图

PostgreSQL 并不完全符合树莓派常见的“小型项目”定位。但如果您习惯使用 PostgreSQL,自然也会有兴趣在树莓派上部署它。对于希望深入了解不同数据库特性和应用场景的开发者,云栈社区的后端与架构板块 提供了许多关于系统设计和高可用性的讨论。

安装

与 MariaDB 一样,PostgreSQL 也包含在树莓派操作系统的默认软件源中,可以使用以下命令安装:

sudo apt install postgresql

安装 postgresql 的终端截图

安装后,需要创建第一个用户:

sudo su postgres
createuser $USER -P --interactive

然后使用 psql 命令连接到数据库,并使用 SQL 语言进行管理:

psql

使用

PostgreSQL 非常流行,几乎可以与任何编程语言搭配使用。如果您想在 Python 中使用它,最常用的库是 psycopg2

sudo pip3 install psycopg2

安装后,您可以将其导入脚本,并使用相应的类连接到数据库。

InfluxDB

InfluxDB 标志

本文要介绍的最后一个选项是 InfluxDB,一个时间序列数据库。尽管它像其他数据库一样存储和查询数据,但 InfluxDB 针对时间戳数据进行了深度优化;换句话说,当关键索引是时间时,它的性能尤其出色。

时间序列数据库传统上用于金融市场分析和工业自动化。然而,它们对于系统监控、DevOps、物联网监控和传感器数据采集也非常方便。

与我们之前介绍的关系型数据库不同,InfluxDB 是专为时间序列数据构建的,因此为此目的进行了优化。InfluxDB 还有一个针对树莓派等低功耗设备优化的“边缘”版本。

安装

无法从树莓派操作系统的默认软件源安装 InfluxDB。您需要手动添加其软件源。

以下是在树莓派上安装 InfluxDB 的简要步骤:

  • 添加 GPG 密钥和软件源,执行以下长命令:
curl --silent --location -O https://repos.influxdata.com/influxdata-archive.key
gpg --show-keys --with-fingerprint --with-colons ./influxdata-archive.key 2>&1 \
| grep -q '^fpr:+24C975CBA61A024EE1B631787C3D57159FC2F927:$' \
&& cat influxdata-archive.key \
| gpg --dearmor \
| sudo tee /etc/apt/keyrings/influxdata-archive.gpg > /dev/null \
&& echo 'deb [signed-by=/etc/apt/keyrings/influxdata-archive.gpg] https://repos.influxdata.com/debian stable main' \
| sudo tee /etc/apt/sources.list.d/influxdata.list
  • 刷新软件源
sudo apt update
  • 安装 InfluxDB 2 软件包
sudo apt install influxdb2
  • 安装后,启动 InfluxDB 服务
sudo systemctl start influxdb

启动 influxdb 服务并检查状态的终端截图

使用

您可以通过图形界面或命令行使用 InfluxDB。图形界面使管理更加便捷。只需从浏览器访问其 Web 面板:

http://<树莓派IP地址或主机名>:8086

InfluxDB 欢迎界面截图

如果您偏好命令行,可以随时调用 influx 命令:

influx

influx 命令行工具帮助信息截图

相关问题

SQL Server 能在树莓派上运行吗?

SQL Server 是微软为 Windows 服务器创建的数据库管理系统。虽然他们之前发布了 Linux 服务器版本,但它仅设计用于 x86 架构,与树莓派的 ARM 架构不兼容。

一个替代方案是在 Docker 中运行 Azure SQL Edge,或者让另一台运行 Windows 的计算机托管 SQL Server。然后,您可以使用 ODBC 从树莓派连接到该 SQL 服务器。

总体而言,微软产品(Windows 或 SQL Server)可以在特定条件下工作,但并未针对树莓派进行优化,因此目前不推荐作为首选。

如何在树莓派上查看和管理数据库?

每个数据库管理系统都有一套工具,可用于更轻松地管理数据库和权限,通常提供图形界面。例如,MariaDB/MySQL 有 phpMyAdmin,SQLite 有 DB Browser for SQLite (DB4S),MongoDB 有 Compass 等。

因此,即使最初可能需要输入一些命令来安装它们,但在日常操作中,您很可能会使用这些图形用户界面(GUI)工具。




上一篇:深入解析提示词注入攻击:AI代理的安全威胁与防御指南
下一篇:DeepSeek开源Engram条件记忆模块,为MoE模型引入存算分离新范式
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-14 18:38 , Processed in 0.210825 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表