如何在Arch Linux上安装PostgreSQL 11.1

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

先决条件

运行最新的Arch Linux的Vultr服务器(请参阅本文。)
须藤访问。

需要以root身份运行的命令带有前缀 #,以及可以由 $。建议以root用户身份运行命令的方式是,以普通用户的身份为每个命令添加前缀 sudo

安装PostgreSQL 11.1数据库

安装PostgreSQL:

# pacman -S postgresql

如果运行Btrfs文件系统,则应考虑禁用数据库目录的写时复制:

# chattr +C /var/lib/postgres/data/

该软件包创建用户 postgres 在您的系统上。

初始化数据库集群。这必须由新的 postgres 用户,并且只要使用sudo权限设置了您的用户帐户,此命令就会执行此操作:

$ sudo -iu postgres initdb -D /var/lib/postgres/data

启动PostgreSQL,并使其在每次启动后启动:

# systemctl enable --now postgresql

以数据库用户身份连接到PostgreSQL postgres 充当数据库根用户:

# psql -U postgres

然后设置一个密码:

postgres-# password postgres

现在退出:

postgres-# q

考虑防火墙

您可能要考虑配置防火墙。默认情况下,PostgreSQL将监听端口 5432 不仅来自本地主机,还来自公共IP地址上的任何位置。 PostgreSQL也只会批准来自localhost的传入连接,但是外部尝试仍将到达PostgreSQL并出现以下错误: no pg_hba.conf entry for host

尽管PostgreSQL被认为是相当安全的,但是除非绝对必要,否则防火墙甚至不向PostgreSQL服务器提供外部数据包也更加安全。即使需要直接远程访问,使用防火墙阻止流量并使用VPN也会更加安全。

准备升级

默认情况下, pacman 当通过运行以下命令升级整个Arch系统时,将在新版本发布到官方Arch存储库时升级PostgreSQL:

# pacman -Syu

强烈建议配置 pacman 不自动安装到PostgreSQL的升级。发布升级后,您将升级整个Arch系统, pacman 会让您知道有新版本可用。编辑 /etc/pacman.conf,并添加以下内容:

IgnorePkg   = postgresql*

处理次要版本升级

什么时候 pacman 显示有次要版本升级,例如 11.011.1,PostgreSQL的版本控制政策是您可以安全地执行升级。就是说,最好先备份数据库。

要执行次要升级,请停止PostgreSQL并确认它已停止:

# systemctl stop postgresql
# systemctl status postgresql

然后,强制升级软件包:

# pacman -S postgresql postgresql-libs

启动PostgreSQL:

# systemctl start postgresql

处理主要版本升级

什么时候 pacman 显示存在主要版本升级,例如 11.x12.x,建议检查 PostgreSQL的网站以及Arch的网站,以查看是否必须执行一些步骤才能正确升级。过去,当PostgreSQL给出此类步骤时,跳过这些步骤将导致数据库无法正常工作。强烈建议您首先备份数据库,因为这些升级的风险更大。

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com