如何在一台树莓派上安装Postgres数据库

发布时间:2021-10-26 17:23:33 作者:小新
来源:亿速云 阅读:611
# 如何在一台树莓派上安装Postgres数据库

## 前言

树莓派(Raspberry Pi)是一款功能强大的微型计算机,广泛应用于教育、物联网、家庭服务器等领域。PostgreSQL(简称Postgres)是一个功能强大的开源关系型数据库系统,以其稳定性、扩展性和标准兼容性著称。将Postgres安装在树莓派上,可以构建一个低成本但功能完善的数据库服务器,非常适合学习、开发和中小型项目。

本文将详细介绍如何在树莓派上安装和配置PostgreSQL数据库,包括系统准备、安装步骤、基本配置、用户管理、远程访问设置以及性能优化等内容。无论你是初学者还是有一定经验的开发者,都能从本文中找到有用的信息。

## 目录

1. [准备工作](#准备工作)
2. [安装PostgreSQL](#安装postgresql)
3. [初始配置](#初始配置)
4. [创建数据库和用户](#创建数据库和用户)
5. [远程访问配置](#远程访问配置)
6. [基本操作指南](#基本操作指南)
7. [备份与恢复](#备份与恢复)
8. [性能优化](#性能优化)
9. [常见问题解决](#常见问题解决)
10. [总结](#总结)

## 准备工作

### 1.1 系统要求

在开始安装之前,请确保你的树莓派满足以下要求:

- 树莓派3B+或更新型号(推荐4B)
- Raspberry Pi OS(原Raspbian)最新版本(32位或64位)
- 至少2GB内存(4GB推荐)
- 至少16GB存储空间(32GB推荐)
- 稳定的网络连接

### 1.2 系统更新

首先,确保你的系统是最新的:

```bash
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y

1.3 安装必要的工具

安装一些后续可能用到的工具:

sudo apt install -y curl wget git vim

安装PostgreSQL

2.1 安装PostgreSQL

Raspberry Pi OS的官方仓库中包含PostgreSQL,安装非常简单:

sudo apt install -y postgresql postgresql-contrib

postgresql-contrib包含一些额外的功能和扩展,建议一并安装。

2.2 验证安装

安装完成后,PostgreSQL服务会自动启动。可以通过以下命令检查服务状态:

sudo systemctl status postgresql

你应该看到类似以下的输出,表示服务正在运行:

● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2023-05-18 10:23:45 BST; 2min 32s ago

2.3 检查PostgreSQL版本

要确认安装的PostgreSQL版本,可以执行:

psql --version

初始配置

3.1 修改postgres用户密码

PostgreSQL安装后会创建一个名为postgres的系统用户。首先我们需要设置其密码:

sudo passwd postgres

然后切换到postgres用户:

sudo su - postgres

3.2 访问PostgreSQL控制台

作为postgres用户,可以访问PostgreSQL控制台:

psql

这将进入PostgreSQL的交互式终端,提示符会变成postgres=#

3.3 修改数据库超级用户密码

在psql控制台中,修改postgres数据库用户的密码:

ALTER USER postgres WITH PASSWORD '你的新密码';

记住这个密码,稍后会用到。输入\q退出psql控制台。

创建数据库和用户

4.1 创建新用户

不建议直接使用postgres超级用户进行日常操作,最好创建专用用户:

createuser --interactive

按照提示输入新用户名,并选择是否为超级用户。

或者可以在psql中创建:

CREATE USER 用户名 WITH PASSWORD '密码';

4.2 创建数据库

创建属于新用户的数据库:

createdb -O 用户名 数据库名

或在psql中:

CREATE DATABASE 数据库名 OWNER 用户名;

4.3 授予权限

如果需要,可以授予用户特定权限:

GRANT ALL PRIVILEGES ON DATABASE 数据库名 TO 用户名;

远程访问配置

默认情况下,PostgreSQL只允许本地连接。要启用远程访问,需要进行以下配置。

5.1 修改pg_hba.conf

编辑PostgreSQL的客户端认证配置文件:

sudo nano /etc/postgresql/13/main/pg_hba.conf

(注意:路径中的”13”是PostgreSQL的主版本号,根据你的实际版本调整)

在文件末尾添加类似以下行,允许特定IP或所有IP连接:

# 允许所有IP通过密码连接
host    all             all             0.0.0.0/0               md5

# 或者只允许特定IP
host    all             all             192.168.1.100/32        md5

5.2 修改postgresql.conf

编辑主配置文件:

sudo nano /etc/postgresql/13/main/postgresql.conf

找到并修改以下行:

listen_addresses = '*'          # 监听所有网络接口

5.3 重启PostgreSQL服务

应用更改:

sudo systemctl restart postgresql

5.4 防火墙设置

如果启用了防火墙(如ufw),需要允许PostgreSQL端口(默认5432):

sudo ufw allow 5432/tcp

基本操作指南

6.1 连接数据库

本地连接:

psql -U 用户名 -d 数据库名

远程连接(从另一台机器):

psql -h 树莓派IP -U 用户名 -d 数据库名

6.2 常用psql命令

6.3 基本SQL操作

创建表:

CREATE TABLE 表名 (
    id SERIAL PRIMARY KEY,
    列名1 数据类型,
    列名2 数据类型
);

插入数据:

INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2);

查询数据:

SELECT * FROM 表名;

备份与恢复

7.1 备份单个数据库

使用pg_dump命令:

pg_dump -U 用户名 数据库名 > 备份文件.sql

7.2 备份所有数据库

pg_dumpall -U postgres > 全量备份.sql

7.3 恢复数据库

创建空数据库后恢复:

psql -U 用户名 -d 数据库名 < 备份文件.sql

或者使用pg_restore(适用于自定义格式备份):

pg_restore -U 用户名 -d 数据库名 备份文件.dump

7.4 自动备份

可以设置cron任务实现自动备份。编辑crontab:

crontab -e

添加类似以下行,实现每天凌晨备份:

0 0 * * * pg_dump -U 用户名 数据库名 > /path/to/backups/数据库名_$(date +\%Y\%m\%d).sql

性能优化

8.1 内存设置

在/etc/postgresql/13/main/postgresql.conf中调整:

shared_buffers = 256MB           # 推荐为总内存的25%
work_mem = 16MB                  # 每个查询操作的内存
maintenance_work_mem = 64MB      # 维护操作的内存

8.2 磁盘I/O优化

random_page_cost = 1.1            # 对SSD使用较低的值
effective_io_concurrency = 200    # 对SSD可以提高

8.3 并行查询设置

max_worker_processes = 4         # 树莓派4B可以设置为4
max_parallel_workers_per_gather = 2

8.4 定期维护

设置自动vacuum和analyze:

autovacuum = on
autovacuum_max_workers = 2

常见问题解决

9.1 连接被拒绝

9.2 内存不足

如果遇到内存不足问题:

9.3 性能问题

9.4 升级问题

升级PostgreSQL主版本时:

sudo pg_dropcluster --stop 13 main
sudo pg_upgradecluster 12 main

总结

在树莓派上安装和配置PostgreSQL是一个相对简单的过程,但能为你的项目提供一个强大而可靠的数据库解决方案。通过本文的指导,你应该已经完成了从安装到基本配置的全过程,并了解了一些高级主题如远程访问、备份恢复和性能优化。

树莓派与PostgreSQL的结合特别适合以下场景:

虽然树莓派的硬件资源有限,但通过合理的配置和优化,PostgreSQL仍然能够提供令人满意的性能。随着树莓派硬件的不断升级,这种组合的应用场景将会更加广泛。

希望本文能帮助你在树莓派上成功部署PostgreSQL数据库。如果你遇到任何问题,PostgreSQL的官方文档和活跃的社区都是极好的资源。祝你使用愉快!

附录

有用的资源

相关命令速查

命令 描述
sudo systemctl start postgresql 启动PostgreSQL服务
sudo systemctl stop postgresql 停止PostgreSQL服务
sudo -u postgres psql 以postgres用户身份进入psql
\password 用户名 更改用户密码
CREATE EXTENSION 扩展名; 安装扩展

版本更新说明

本文基于以下版本编写: - Raspberry Pi OS: 2023-05-03 release - PostgreSQL: 13.7

对于其他版本,部分路径和命令可能需要相应调整。 “`

推荐阅读:
  1. 在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
  2. 如何在本地Docker安装Postgres 12 + pgadmin

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

数据库 postgres

上一篇:Python开发者面向文档编程的正确姿势是什么

下一篇:将项目语言从Python转向Go的5个原因分别是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》