注:本教程在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.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给出此类步骤时,跳过这些步骤将导致数据库无法正常工作。强烈建议您首先备份数据库,因为这些升级的风险更大。
注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com