在Ubuntu 20.04上安装PostgreSQL数据库服务器(Focal Fossa)

时间:2020-02-23 14:32:21  来源:igfitidea点击:

欢迎到今天的教程,了解如何在Ubuntu 20.04上安装PostgreSQL数据库服务器(焦点FOSEA)。
PostgreSQL是一种流行而强大的开源关系数据库管理系统,用于运行任务关键应用程序。
PostgreSQL基于Postgres 4.2.

如果要检查PostgreSQL数据库的所有酷炫函数,请访问"函数Metrix"页面以了解更多信息。
本教程将直接潜水到Ubuntu 20.04(焦点FOSEA)Linux系统上的PostgreSQL安装。

第1步:更新系统

我们需要在更新的系统上工作,以确保我们没有得到任何依赖问题。

sudo apt update
sudo apt -y upgrade

系统更新后,我们可以继续在Ubuntu 20.04上安装PostgreSQL数据库服务器,Focal Fossa Linux。

第2步:在Ubuntu 20.04上安装PostgreSQL数据库服务器(Focal Fossa)

我们将在Ubuntu 20.04上安装PostgreSQL数据库服务器的默认版本,而无需配置项目的上游存储库。

sudo apt install postgresql postgresql-client

确认包安装继续。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apport apport-symptoms at bc bcache-tools bolt byobu cryptsetup cryptsetup-run ethtool fonts-ubuntu-console fwupd fwupd-signed git git-man htop
  initramfs-tools-bin klibc-utils kpartx landscape-common libarchive13 liberror-perl libevent-2.1-7 libfl2 libfwupd2 libfwupdplugin1 libgcab-1.0-0
  libgpgme11 libgusb2 libklibc libmspack0 libsgutils2-2 libsmbios-c2 libtss2-esys0 liburcu6 libutempter0 libxmlb1 libxmlsec1 libxmlsec1-openssl lz4
  open-vm-tools pastebinit patch pollinate python3-apport python3-attr python3-automat python3-click python3-colorama python3-constantly
  python3-debconf python3-debian python3-hamcrest python3-hyperlink python3-incremental python3-newt python3-problem-report python3-pyasn1
  python3-pyasn1-modules python3-service-identity python3-systemd python3-twisted python3-twisted-bin python3-zope.interface run-one screen sg3-utils
  sosreport tmux tpm-udev update-notifier-common
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libllvm9 libpq5 libsensors-config libsensors5 postgresql-12 postgresql-client-12 postgresql-client-common postgresql-common sysstat
Suggested packages:
  lm-sensors postgresql-doc postgresql-doc-12 libjson-perl isag
The following NEW packages will be installed:
  libllvm9 libpq5 libsensors-config libsensors5 postgresql postgresql-12 postgresql-client postgresql-client-12 postgresql-client-common
  postgresql-common sysstat
0 upgraded, 11 newly installed, 0 to remove and 4 not upgraded.
Need to get 30.0 MB of archives.
After this operation, 116 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

安装PostgreSQL的版本是12.这是本文写作的最新稳定版本。

安装后自动启动该服务。
我们可以确认是否使用命令运行:

$systemctl status postgresql.service 
● postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Thu 2019-12-26 07:15:55 UTC; 1min 46s ago
   Main PID: 3953 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 614)
     Memory: 0B
     CGroup: /system.slice/postgresql.service
Dec 26 07:15:55 ubuntu20 systemd[1]: Starting PostgreSQL RDBMS...
Dec 26 07:15:55 ubuntu20 systemd[1]: Started PostgreSQL RDBMS.

第3步:更改服务监听IP(可选)

如果我们需要网络应用程序来连接到中央数据库,则需要更改Listens_addresses行以允许绑定到服务器上可用的所有地址或者可用的特定IP地址。

# Allow bind to all addresses
listen_addresses = '*'
# Allow bind to one IP addresses
listen_addresses = '192.168.10.20'

对于多个IP地址,列出它们并与逗号分隔。
更改后,重新启动服务。

sudo systemctl restart postgresql

第4步:更新PostgreSQL管理员用户的密码

使用PostgreSQL数据库服务器的安装创建PostgreSQL数据库管理员。
我们需要为此用户设置安全密码。

sudo su - postgres
psql -c "alter user postgres with password 'Hyman@theitroad'"

尝试创建测试数据库和用户。

createuser dbuser
createdb testdb -O dbuser
$psql testdb 
psql (12.1 (Ubuntu 12.1-1))
Type "help" for help.
testdb=# alter user dbuser with password 'StrongPassword'; 
ALTER ROLE
testdb=# \q
Hyman@theitroad:~$dropdb testdb

列表已创建的数据库:

$psql -l 
                              List of databases
   Name    |  Owner   | Encoding | Collate |  Ctype  |   Access privileges   
-----------+----------+----------+---------+---------+----------------------
 postgres  | postgres | UTF8     | C.UTF-8 | C.UTF-8 | 
 template0 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
           |          |          |         |         | postgres=CTc/postgres
 template1 | postgres | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
           |          |          |         |         | postgres=CTc/postgres
 testdb    | dbuser   | UTF8     | C.UTF-8 | C.UTF-8 | 
(4 rows)

步骤5:安装PHPPGADMIN管理界面

我们现在可以安装PHPGADMIN管理界面,可用于管理PostgreSQL数据库操作。

sudo apt -y install phppgadmin php-pgsql

要允许使用root或者postgres等特权用户帐户登录,请将以下行设置为false。

$sudo vim /etc/phppgadmin/config.inc.php
$conf['extra_login_security'] = false;

只显示登录用户所拥有的数据库,请设置在下行。

$conf['owned_only'] = true;

设置IPv4允许的本地连接。

host    all             all             127.0.0.1/32            md5
host    all             all             192.168.10.0/24         md5
host    all             all             10.20.5.0/24            md5

为Web UI访问提供相同的操作。

sudo nano /etc/apache2/conf-enabled/phppgadmin.conf

只允许LocalHost连接,添加如下所示的其他IP地址。

Require local
Require ip 192.168.10.0/24
Require ip 10.10.0.0/24

更改后重新启动PostgreSQL服务。

sudo systemctl restart postgresql apache2

要访问phppgadmin仪表板,请打开URL http://(hostname_or_ip_address/phppgadmin /。