如何在Arch Linux上安装PostgreSQL 11.1

・4 分钟阅读

前提条件

  • 运行最新版本Arch Linux的服务器(请参见本文 )
  • sudo访问,

安装PostgreSQL 11.1数据库

安装PostgreSQL :


# pacman -S postgresql

如果运行Btrfs文件系统,就应考虑对数据库目录禁用copy-on-write


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

软件包会在你的系统上创建用户postgres。

初始化数据库,这必须由新的postgres用户完成,只要用户帐户设置了sudo特权,运行这个命令即可:


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

启动PostgreSQL,并使它在每次引导后自动启动:


# systemctl enable --now postgresql

连接到PostgreSQL,作为数据库root用户的数据库用户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也会更加安全。

准备升级

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

 
# pacman -Syu

 

强烈建议将pacman配置为不自动升级PostgreSQL ,编辑/etc/pacman.conf,并添加以下内容:


IgnorePkg = postgresql*

处理小版本升级

当pacman显示一个小版本升级,比如,11.0升级到11.1版,PostgreSQL策略就可以安全地执行升级,先备份数据库是一个好主意。

要执行小版本升级,请停止PostgreSQL,并且确认它已停止:


# systemctl stop postgresql
# systemctl status postgresql

然后,强制升级软件包:


# pacman -S postgresql postgresql-libs

启动PostgreSQL :


# systemctl start postgresql

处理主版本升级

当pacman显示存在主版本升级时,例如,11.x到12.x建议检查PostgreSQL以及Arch的网站,查看升级时有没有必须执行的步骤,在以前,当PostgreSQL给出这样的必须步骤时,跳过它们将使数据库无法正常工作,强烈建议你先备份数据库,因为这种升级更加危险。

Chinaxiong profile image