FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章与书籍
  • UNIX 四分之一世纪
  • Unix 痛恨者手册
  • FreeBSD 从入门到追忆(第三版:草稿)
  • 编辑日志
  • 贡献指南与开放任务
  • 目录
  • 前言
    • 致读者
    • 致谢
    • 初版序言:好望角与塔吊
    • 再版序言:回到复制粘贴,面向教程本身
    • 三版序言:且有大觉而后知此其大梦也(草稿)
    • 本书的组织结构
    • 本书中使用的一些约定
  • 第 1 章 FreeBSD 初见
    • 第 1.1 节 操作系统的历程:UNIX、BSD、Linux 的演化
    • 第 1.2 节 欢迎来到 FreeBSD
    • 第 1.3 节 关于 FreeBSD 项目
    • 第 1.4 节 George Berkeley(乔治·贝克莱)与 BSD 命名的文化背景
    • 第 1.5 节 加州大学伯克利分校与“Fiat Lux”(要有光)
  • 第 2 章 安装 FreeBSD
    • 第 2.1 节 安装前的准备工作
    • 第 2.2 节 使用 bsdinstall 开始安装
    • 第 2.3 节 键盘布局和主机名
    • 第 2.4 节 选择安装组件
    • 第 2.5 节 分配磁盘空间
    • 第 2.6 节 设置 root 密码
    • 第 2.7 节 网络设置
    • 第 2.8 节 时区、服务、安全、固件和账户
    • 第 2.9 节 完成安装
    • 第 2.10 节 故障排除
  • 第 3 章 FreeBSD 基础
    • 第 3.1 节 Windows 用户迁移指南
    • 第 3.2 节 Linux 用户迁移指南
    • 第 3.3 节 虚拟控制台和终端
    • 第 3.4 节 认识 shell
    • 第 3.5 节 命令行基础
    • 第 3.6 节 文本编辑器
    • 第 3.7 节 用户和基本账户管理
    • 第 3.8 节 权限
    • 第 3.9 节 sudo 与 doas
    • 第 3.10 节 文件系统的挂载与卸载
    • 第 3.11 节 磁盘结构
    • 第 3.12 节 目录结构
  • 第 4 章 软件管理与系统升级
    • 第 4.1 节 FreeBSD 镜像站现状
    • 第 4.2 节 更换 FreeBSD 软件源
    • 第 4.3 节 gitup 的用法
    • 第 4.4 节 使用 pkg 管理二进制包
    • 第 4.5 节 使用 Ports 以源代码方式安装软件
    • 第 4.6 节 使用 DVD 安装软件
    • 第 4.7 节 使用 freebsd-update 更新 FreeBSD
    • 第 4.8 节 使用源代码更新 FreeBSD
    • 第 4.9 节 使用 pkgbase 更新 FreeBSD
  • 第 5 章 桌面环境
    • 第 5.1 节 Intel 与 AMD 显卡驱动
    • 第 5.2 节 NVIDIA 显卡驱动
    • 第 5.3 节 KDE6
    • 第 5.4 节 GNOME
    • 第 5.5 节 Mate
    • 第 5.6 节 Xfce
    • 第 5.7 节 Cinnamon
    • 第 5.8 节 Lumina
    • 第 5.9 节 LXQt
    • 第 5.10 节 Budgie
    • 第 5.11 节 CDE
    • 第 5.12 节 LXDE
    • 第 5.13 节 主题美化
    • 第 5.14 节 远程桌面
    • 第 5.15 节 启用 root 桌面登录
  • 第 6 章 本地化——i18n/L10n
    • 第 6.1 节 本地化环境变量
    • 第 6.2 节 Fcitx 输入法框架
    • 第 6.3 节 IBus 输入法框架
    • 第 6.4 节 五笔输入法
    • 第 6.5 节 网络浏览器
    • 第 6.6 节 QQ(Linux 版)
    • 第 6.7 节 更换字体
    • 第 6.8 节 金山 WPS(Linux 版)
    • 第 6.9 节 压缩与解压
    • 第 6.10 节 微信(Linux 版)
  • 第 7 章 多媒体与外部设备
    • 第 7.1 节 音频设备配置
    • 第 7.2 节 蓝牙
    • 第 7.3 节 打印机
    • 第 7.4 节 触摸板
    • 第 7.5 节 音频播放器
    • 第 7.6 节 视频播放器
    • 第 7.7 节 多媒体处理工具
  • 第 8 章 代理服务器
    • 第 8.1 节 HTTP 代理
    • 第 8.2 节 V2ray
    • 第 8.3 节 Mihomo(原 Clash)
    • 第 8.4 节 OpenVPN
  • 第 9 章 Jail
    • 第 9.1 节 配置 Jail
    • 第 9.2 节 更新 jail
    • 第 9.3 节 使用 Qjail 管理 Jail
    • 第 9.4 节 Linux Jail
  • 第 10 章 虚拟化与容器
    • 第 10.1 节 通过 BVCP 以网页管理 BHyve
    • 第 10.2 节 使用 bhyve 安装 Windows 11(vm-bhyve)
    • 第 10.3 节 Podman
    • 第 10.4 节 在 FreeBSD 上安装 VirtualBox
  • 第 11 章 FreeBSD 安装实践
    • 第 11.1 节 使用 Hyper-V 安装 FreeBSD
    • 第 11.2 节 使用 VMware Workstation Pro 安装 FreeBSD
    • 第 11.3 节 使用 Virtual Box 安装 FreeBSD
    • 第 11.4 节 手动安装双系统(先安装 FreeBSD)
    • 第 11.5 节 手动安装双系统(后安装 FreeBSD)
    • 第 11.6 节 基于 Apple M1 & Parallels Desktop 20 安装 FreeBSD
    • 第 11.7 节 基于 Apple M1 & VMware Fusion Pro 安装 FreeBSD
    • 第 11.8 节 使用 Qemu 安装 RISC-V FreeBSD(基于 x86 Windows)
    • 第 11.9 节 云服务器安装 FreeBSD(基于腾讯云轻量云)
    • 第 11.10 节 配置 rEFInd(双系统用)
  • 第 12 章 窗口管理器
    • 第 12.1 节 bspwm
    • 第 12.2 节 IceWM
    • 第 12.3 节 i3wm
    • 第 12.4 节 Hyprland
    • 第 12.5 节 Window Maker
    • 第 12.6 节 Fluxbox
  • 第 13 章 FreeBSD 系统管理
    • 第 13.1 节 引导界面与虚拟控制台
    • 第 13.2 节 管理 FreeBSD 中的服务
    • 第 13.3 节 bsdconfig 系统配置工具
    • 第 13.4 节 SSH 配置与相关工具
    • 第 13.5 节 单用户模式与密码重置
    • 第 13.6 节 Grub & UEFI 与 efibootmgr
  • 第 14 章 网络管理
    • 第 14.1 节 设置网络
    • 第 14.2 节 无线网络
    • 第 14.3 节 USB 网络共享(USB tethering)
    • 第 14.4 节 TCP 堆栈
  • 第 15 章 FreeBSD 防火墙
    • 第 15.1 节 Fail2Ban(基于 IPFW、PF、IPF)
    • 第 15.2 节 Packet Filter(PF)
    • 第 15.3 节 IPFilter(IPF)
    • 第 15.4 节 ipfirewall(IPFW)
  • 第 16 章 服务器
    • 第 16.1 节 FTP 服务器
    • 第 16.2 节 MinIO 对象存储服务
    • 第 16.3 节 Gitlab-EE
    • 第 16.4 节 时间服务
    • 第 16.5 节 WildFly
    • 第 16.6 节 Rsync 同步服务
    • 第 16.7 节 Samba 服务器
    • 第 16.8 节 NFS 服务器
    • 第 16.9 节 Webmin
  • 第 17 章 Web 服务器与监控平台
    • 第 17.1 节 Apache
    • 第 17.2 节 Nginx
    • 第 17.3 节 PHP 8.X
    • 第 17.4 节 Zabbix 监控(基于 PostgreSQL)
    • 第 17.5 节 NextCloud——基于 PostgreSQL
    • 第 17.6 节 Telegraf+InfluxDB+Grafana 监控平台
    • 第 17.7 节 AList
    • 第 17.8 节 Prometheus 监控部署
    • 第 17.9 节 Tomcat
    • 第 17.10 节 Caddy
    • 第 17.11 节 OnlyOffice(基于 PostgreSQL)
  • 第 18 章 嵌入式平台
    • 第 18.1 节 树莓派简介与配件选用
    • 第 18.2 节 树莓派安装 FreeBSD
    • 第 18.3 节 树莓派 FreeBSD 配置
    • 第 18.4 节 树莓派与 Linux 兼容层
    • 第 18.5 节 Radxa X4(x86)
  • 第 19 章 数据库管理
    • 第 19.1 节 PostgreSQL
    • 第 19.2 节 pgAdmin4
    • 第 19.3 节 MySQL 5.X
    • 第 19.4 节 MySQL 8.X
    • 第 19.5 节 MongoDB 8.0
  • 第 20 章 游戏、科学计算与专业工具
    • 第 20.1 节 游戏
    • 第 20.2 节 我的世界(Minecraft)
    • 第 20.3 节 科研与专业工具
  • 第 21 章 Linux 二进制兼容层
    • 第 21.1 节 Linux 兼容层实现
    • 第 21.2 节 RockyLinux 兼容层(FreeBSD Port)
    • 第 21.3 节 Ubuntu/Debian 兼容层
    • 第 21.4 节 ArchLinux 兼容层(基于 ArchLinux bootstrap)
    • 第 21.5 节 ArchLinux 兼容层(基于 archlinux-pacman)
    • 第 21.6 节 OpenSUSE 兼容层
    • 第 21.7 节 Gentoo Linux 兼容层
    • 第 21.8 节 Rocky Linux 兼容层
    • 第 21.9 节 Slackware Linux 兼容层
    • 第 21.10 节 Deepin 兼容层
    • 第 21.11 节 故障排除与未竟事宜
  • 第 22 章 开发生态与贡献社区
    • 第 22.1 节 如何报告 Bug
    • 第 22.2 节 如何开发一个 Port
    • 第 22.3 节 如何参与 FreeBSD 开发
    • 第 22.4 节 C/C++ 环境的配置
    • 第 22.5 节 Java 环境的配置
    • 第 22.6 节 QT 环境的配置
    • 第 22.7 节 Python 与 VS Code
    • 第 22.8 节 Rust/Go 环境的配置
    • 第 22.9 节 配置 Shell
    • 第 22.10 节 通过 IDA 7 调试 FreeBSD
    • 第 22.11 节 如何订阅 FreeBSD 的邮件列表
    • 第 22.12 节 code-server 和 clangd
    • 第 22.13 节 Node.js
    • 第 22.14 节 利用脚本自动生成 BSDlibc 库文本
  • 第 23 章 存储管理与文件系统
    • 第 23.1 节 自动挂载文件系统
    • 第 23.2 节 ZFS 文件系统
    • 第 23.3 节 磁盘扩容与分区调整
    • 第 23.4 节 Windows 文件系统
    • 第 23.5 节 Swap 交换分区的设置
    • 第 23.6 节 Linux 文件系统
  • 第 24 章 DragonFly BSD 入门
    • 第 24.1 节 DragonFly BSD 概述
    • 第 24.2 节 安装 DragonFly BSD
    • 第 24.3 节 配置 DragonFly BSD
  • 第 25 章 TwinCAT/BSD 入门
    • 第 25.1 节 TwinCAT/BSD 系统安装与基本配置
    • 第 25.2 节 TwinCAT/BSD 开发环境配置
  • 第 26 章 OpenBSD 入门
    • 第 26.1 节 OpenBSD 概述
    • 第 26.2 节 安装 OpenBSD
    • 第 26.3 节 配置 OpenBSD
    • 第 26.4 节 OpenBSD 包管理器
    • 第 26.5 节 桌面与其他软件
    • 第 26.6 节 在 RISC-V 开发板上安装 OpenBSD
    • 第 26.7 节 树莓派与 OpenBSD
  • 第 27 章 NetBSD 入门
    • 第 27.1 节 NetBSD 概述
    • 第 27.2 节 NetBSD 安装图解
    • 第 27.3 节 NetBSD 换源与包管理器
    • 第 27.4 节 桌面与中文环境常用软件
  • 附录 Ⅰ 计算机概论
    • 存储卡参数简介与测试
    • 总线接口与协议
    • 网络基础
    • 操作系统
    • MySQL 数据库
  • 附录 Ⅱ 工具与资源
    • 适用于 FreeBSD 的以太网卡、USB 以太网卡和 USB 无线网卡
    • BSD 许可证概览
    • FreeBSD 桌面发行版评述
  • 附录 Ⅲ 文学故事
    • 我与 FreeBSD 的故事
    • 两次告别
    • 小说:大教堂与集市
    • 小说:吾乡何处
    • 小说:你与暗
    • 诗歌选
    • 杂记
  • 附录 Ⅳ 参考文献与术语
    • 参考书目
    • 术语表
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
  • 安装 PostgreSQL
  • 服务管理
  • 初始化数据库
  • 登录使用
  • 深入 PostgreSQL 服务管理
  • 初始化建议
  • 管理多个数据库实例(集簇)
在GitHub上编辑
导出为 PDF
  1. 第 19 章 数据库管理

第 19.1 节 PostgreSQL

PostgreSQL 是一款自由的对象关系型数据库(Object-Relational Database,ORDB)。PostgreSQL 最早发布于 1989 年 6 月。在 FreeBSD 上,有多个版本可选。在吞吐量、源代码清晰度、平均耗时等多方面均优于 MySQL。

值得一提的是,PostgreSQL 也渊源于加州大学伯克利分校。PostgreSQL 的许可证是 PostgreSQL 许可证,与 BSDL 类似。

安装 PostgreSQL

以 PostgreSQL 17 为例,其余版本大同小异。

# pkg install -y postgresql17-server

或者

# cd /usr/ports/databases/postgresql17-server/ 
# make install clean

查看安装后配置

# pkg info -D postgresql17-server
postgresql17-server-17.5:
On install:
安装时说明:
For procedural languages and postgresql functions, please note that  
对于过程语言(procedural languages)和 PostgreSQL 函数,请注意  
you might have to update them when updating the server.  
在更新服务器时你可能需要更新它们。  

If you have many tables and many clients running, consider raising  
如果你有大量表和大量客户端在运行,考虑提高  
kern.maxfiles using sysctl(8), or reconfigure your kernel  
通过 sysctl(8) 设置 kern.maxfiles,或者重新配置你的内核  
appropriately.  
以做出相应调整。  

The port is set up to use autovacuum for new databases, but you might  
该 Port 被设置为在新数据库中启用了自动清理(autovacuum),但你可能  
also want to vacuum and perhaps backup your database regularly.  
也希望定期执行 vacuum 并备份你的数据库。  
There is a periodic script, /usr/local/etc/periodic/daily/502.pgsql, that  
系统提供了一个周期性脚本 /usr/local/etc/periodic/daily/502.pgsql,  
you may find useful. You can use it to backup and perform vacuum on all  
你可能会觉得有用。你可以用它来备份并对所有  
databases nightly. Per default, it performs `vacuum analyze'. See the  
数据库每晚执行 vacuum。默认行为是执行 `vacuum analyze`。请查看  
script for instructions. For autovacuum settings, please review  
该脚本获取说明。关于自动清理设置,请查阅  
~postgres/data/postgresql.conf.  
~postgres/data/postgresql.conf。  

If you plan to access your PostgreSQL server using ODBC, please  
如果你打算通过 ODBC 访问你的 PostgreSQL 服务器,请  
consider running the SQL script /usr/local/share/postgresql/odbc.sql  
考虑运行 SQL 脚本 /usr/local/share/postgresql/odbc.sql  
to get the functions required for ODBC compliance.  
以获得符合 ODBC 标准所需的函数。  

Please note that if you use the rc script,  
请注意,如果你使用 rc 脚本,  
/usr/local/etc/rc.d/postgresql, to initialize the database, unicode  
/usr/local/etc/rc.d/postgresql 来初始化数据库,Unicode  
(UTF-8) will be used to store character data by default.  Set  
(UTF-8)将默认用于存储字符数据。设置  
postgresql_initdb_flags or use login.conf settings described below to  
postgresql_initdb_flags,或使用下述 login.conf 设置以  
alter this behaviour. See the start rc script for more info.  
改变这一行为。详情请参阅启动脚本。  

To set limits, environment stuff like locale and collation and other  
为了设置限制、语言环境(locale)、排序规则(collation)及其他  
things, you can set up a class in /etc/login.conf before initializing  
内容,你可以在初始化数据库前,在 /etc/login.conf 中设置一个类。  
the database. Add something similar to this to /etc/login.conf:  
在 /etc/login.conf 中添加如下类似内容:  
---  
postgres:\  
	:lang=en_US.UTF-8:\  
	:setenv=LC_COLLATE=C:\  
	:tc=default:  
---  
and run `cap_mkdb /etc/login.conf'.  
然后运行 `cap_mkdb /etc/login.conf`。  
Then add 'postgresql_login_class="postgres"' to /etc/rc.conf, or  
再将 'postgresql_login_class="postgres"' 添加到 /etc/rc.conf,或者  
set it as the postgres user's login class in /etc/passwd.  
将其作为 postgres 用户在 /etc/passwd 中的登录类设置。  

======================================================================

To use PostgreSQL, enable it in rc.conf using  
要使用 PostgreSQL,请在 rc.conf 中启用它:  

  sysrc postgresql_enable=yes

To initialize the database, run  
要初始化数据库,请运行:  

  service postgresql initdb

You can then start PostgreSQL by running:  
你可以通过以下命令启动 PostgreSQL:  

  service postgresql start

For postmaster settings, see ~postgres/data/postgresql.conf  
关于 postmaster 设置,请查阅 ~postgres/data/postgresql.conf  

NB. FreeBSD's PostgreSQL port logs to syslog by default  
注意:FreeBSD 的 PostgreSQL Port 默认将日志记录到 syslog  
    See ~postgres/data/postgresql.conf for more info  
    更多信息请参阅 ~postgres/data/postgresql.conf  

NB. If you're not using a checksumming filesystem like ZFS, you might  
注意:如果你没有使用如 ZFS 一类具备校验和功能的文件系统,你可能  
    wish to enable data checksumming. It can be enabled during  
    希望启用数据校验和。它可以在  
    the initdb phase, by adding the "--data-checksums" flag to  
    initdb 阶段,通过添加 "--data-checksums" 参数到  
    the postgresql_initdb_flags rcvar. Otherwise you can enable it later by  
    postgresql_initdb_flags 变量来启用。否则你也可以之后使用  
    using pg_checksums.  Check the initdb(1) manpage for more info  
    pg_checksums 来启用。请查阅 initdb(1) 联机手册获取更多信息  
    and make sure you understand the performance implications.  
    并确保你理解它对性能的影响。

服务管理

# service postgresql enable

初始化数据库

# service postgresql initdb

示例输出(我设置了 i18n,如果你是输出是英文也是正常的):

initdb postgresql
属于此数据库系统的文件宿主为用户 "postgres".
此用户也必须为服务器进程的宿主.

数据库集簇将以该区域环境配置进行初始化:
  区域环境支持程序:   libc
  LC_COLLATE:  C
  LC_CTYPE:    zh_CN.UTF-8
  LC_MESSAGES: zh_CN.UTF-8
  LC_MONETARY: zh_CN.UTF-8
  LC_NUMERIC:  zh_CN.UTF-8
  LC_TIME:     zh_CN.UTF-8
initdb: 无法为区域环境 "zh_CN.UTF-8" 找到合适的文本搜索配置
默认的文本搜索配置将被设为 "simple".

禁止为数据页生成校验和.

正在创建目录 /var/db/postgres/data17 ... 成功
正在创建子目录 ... 成功
正在选择动态共享内存实现 ... posix
正在选择默认最大连接数 (max_connections) ... 100
正在选择默认共享缓冲区 (shared_buffers) ... 128MB
正在选择默认时区 ... Asia/Shanghai
正在创建配置文件 ... 成功
正在运行启动脚本 ... 成功
正在执行启动脚本后续初始化 ... 成功
正在同步数据到磁盘 ... 成功

initdb: 警告: 为本地连接启用 "trust" 身份验证
initdb: 提示: 你可以通过编辑 pg_hba.conf 或下次运行 initdb 时使用 -A 或者 --auth-local 和 --auth-host 选项进行更改。

成功。你现在可以用下面的命令开启数据库服务器:

    /usr/local/bin/pg_ctl -D /var/db/postgres/data17 -l logfile start

登录使用

Postgresql 默认是没有 root 用户的,需要使用其创建的用户 postgres 登录。

示例输出:

root@ykla:~ # psql
psql: FATAL:  role "root" does not exist

正确用法:

#切换用户
root@ykla:~ # su - postgres

#启动服务,注意 data 后边的版本你可能和我不同
$ /usr/local/bin/pg_ctl -D /var/db/postgres/data17 -l logfile start
等待服务器进程启动 .... 完成
服务器进程已经启动

#创建新用户 ykla,并设置密码
$ createuser -sdrP ykla
为新角色输入的口令:
再输入一遍:
$
#创建数据库
$ createdb new_db
#登录进数据库并将数据库权限赋予用户 ykla。
$ psql
psql (16.7)
输入 "help" 来获取帮助信息.

postgres=# ALTER USER ykla WITH ENCRYPTED PASSWORD 'password';
ALTER ROLE
postgres=#
postgres=# GRANT ALL PRIVILEGES ON DATABASE new_db TO ykla;
GRANT
# 退出数据库
postgres=# \q
$ exit
root@ykla:~ #

深入 PostgreSQL 服务管理

初始化建议

初始化数据库建议是使用 service postgresql initdb,这是最简便的方式。但是里面还是有一些技巧可用。

这里讲如何使用 postgresql_initdb_flags rc 脚本参数。

postgresql_initdb_flags 参数默认是"--encoding=utf-8 --lc-collate=C"。意义一目了然:指定编码为 UTF-8,排序规则为 ASCII 编码。

建议用 sysrc 设置如下:

# sysrc postgresql_initdb_flags="--encoding=utf-8 --lc-collate=C -A scram-sha-256 -W"

解释:

  • -A scram-sha-256 用于指定默认的认证方法。否则 pg_hba.conf 中默认认证方法为 trust,即无密码登录;

  • -W 用于在初始化时要求设置 postgres 用户密码,这样不用登录后再设置密码。

这样可以简化一些初始化工作。同样也可以利用 postgresql_initdb_flags 参数灵活控制初始化工作。

管理多个数据库实例(集簇)

PostgreSQL 能在一台机器上运行多个实例,这在测试不同配置,隔离环境时非常有用。

管理多个数据库实例的工具在 Debian/Ubuntu 系统上常用的是 pg_ctlcluster,即是对 pg_ctl 的封装。

FreeBSD 上并没有这个工具,但 FreeBSD 上 PostgreSQL 的 rc 脚本封装了这些管理功能,使用起来也很方便。

下面将建立两个命名实例,分别为:main、dev。

配置实例

# 增加一个 main 实例
# sysrc postgresql_profiles+=main  

# 增加一个 dev 实例  
# sysrc postgresql_profiles+=dev  

# 当然可以直接一次设置多个实例  
# sysrc postgresql_profiles="main dev"  

# 对应 main 实例数据目录②
# sysrc postgresql_main_data=/var/db/postgres/main  

# 对应 dev 实例数据目录③ 
# sysrc postgresql_dev_data=/var/db/postgres/dev  

# 必须为每个实例设置数据目录  
# (见上两条)  

# 为 main 实例设置初始化参数①
# dev 实例默认初始化,作一对比  
# sysrc postgresql_main_initdb_flags="-E utf-8 -A scram-sha-256 --lc-collate C -W"  

# 为每个实例设置启用或关闭  
# sysrc postgresql_main_enable=YES  
# sysrc postgresql_dev_enable=YES  

说明:

  • ① 把实例名放入 rc 参数名中,就是对应实例的参数名。

  • ② postgresql_data、postgresql_enable 等参数还是可以使用。这时这些参数作为实例对应参数的默认值使用,在找不到实例参数时使用。但当你显式配置了实例参数后,就不会使用默认参数了。

  • ③ 在管理多个实例时,建议只使用实例名相关的参数,不去使用没有实例名的参数。好处是清晰明确,控制上也灵活,不同实例可以有不同设置。

初始化实例目录

# service postgresql initdb

这会初始化两个数据库实例。

也可以在命令最后指定实例名分别进行初始化,在新增实例时使用这种方法:

# service postgresql initdb main
# service postgresql initdb dev

注意:

两个不同的实例必须运行在不同的端口上,所以需要修改对应实例的端口号。

这里 main 实例使用默认的 5432 端口,不作修改;dev 实例使用 5433 端口,修改对应配置文件

修改 /var/db/postgres/dev/postgresql.conf。找到 port 行,修改如下:

port = 5433

启动停止和重启

# service postgresql start
# service postgresql status
# service postgresql restart
# service postgresql stop

以上针对所有实例进行。操作示例如下:

# service postgresql start # 启动服务
===> postgresql profile: main 
start postgresql
===> postgresql profile: dev
start postgresql
# service postgresql status # 查看状态
===> postgresql profile: main
status postgresql
pg_ctl: server is running (PID: 2624)
/s/usr/local/bin/postgres "-D" "/var/db/postgres/main"
===> postgresql profile: dev
status postgresql
pg_ctl: server is running (PID: 2641)
/s/usr/local/bin/postgres "-D" "/var/db/postgres/dev"
# service postgresql restart # 重启服务
===> postgresql profile: main
restart postgresql
===> postgresql profile: dev
restart postgresql
# service postgresql status # 查看状态
===> postgresql profile: main
status postgresql
pg_ctl: server is running (PID: 2685)
/s/usr/local/bin/postgres "-D" "/var/db/postgres/main"
===> postgresql profile: dev
status postgresql
pg_ctl: server is running (PID: 2701)
/s/usr/local/bin/postgres "-D" "/var/db/postgres/dev"
# service postgresql stop # 停止服务
===> postgresql profile: main
stop postgresql
===> postgresql profile: dev
stop postgresql
# service postgresql status # 查看状态
===> postgresql profile: main
status postgresql
pg_ctl: no server running
===> postgresql profile: dev
status postgresql
pg_ctl: no server running

可以指定实例名单独操作:

# service postgresql start dev
# service postgresql restart dev
# service postgresql status dev
# service postgresql stop dev

输出示例如下:

# service postgresql start dev
start postgresql
# service postgresql status dev
status postgresql
pg_ctl: server is running (PID: 2807)
/s/usr/local/bin/postgres "-D" "/var/db/postgres/dev"
# service postgresql restart dev
restart postgresql
# service postgresql stop dev
stop postgresql
上一页第 18.5 节 Radxa X4(x86)下一页第 19.2 节 pgAdmin4

最后更新于1天前