如何在Ubuntu 20.04上安装PostgreSQL 13 18.04
PostgreSQL是一种非常流行的开源对象关系数据库管理系统(DBMS),其创建是为了确保可靠性,效率和数据完整性。现在的开发工作已超过30年,该项目在可靠性,功能强大性和性能方面赢得了很高的声誉。在本教程中,我们将说明如何在Ubuntu 20.04 | 18.04 Linux服务器上安装和配置PostgreSQL 13数据库服务器。
PostgreSQL的最新版本为13,旨在用于在生产环境中运行工作负载。我们可以在发行说明中找到有关PostgreSQL 13中发现的所有功能和更改的信息。
更新Ubuntu系统
我们始终致力于最新版本的OS,以确保不存在旧的依赖性问题。登录到Ubuntu服务器并运行以下命令以更新所有已安装的软件包。
sudo apt update sudo apt -y upgrade
系统更新后,建议我们重新启动以使新内核在更新时运行。
sudo reboot
将PostgreSQL 13存储库添加到Ubuntu 20.04 | 18.04
现在我们已经更新并重新启动了系统,让我们添加将软件包从PostgreSQL存储库中拉出所需的APT存储库。
sudo apt -y install vim bash-completion wget wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add
导入GPG密钥后,将存储库内容添加到Ubuntu 20.04 | 18.04系统:
echo "deb http://apt.postgresql.org/pub/repos/apt/`lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list
添加的存储库包含许多不同的软件包,包括第三方插件。它们包括:postgresql-clientpostgresqllibpq-devpostgresql-server-devpgadmin软件包
在Ubuntu 20.04/18.04 Linux上安装PostgreSQL 13
添加存储库后,我们可以在Ubuntu 20.04 | 18.04 Linux服务器上安装PostgreSQL 13软件包。但是首先要更新该版本的软件包索引,以使其在操作系统级别可用。
sudo apt update
运行以下命令在Ubuntu 20.04上安装PostgreSQL 13 | 18.04 Linux系统。
sudo apt install postgresql-13 postgresql-client-13
PostgreSQL服务已启动,并设置为在每次系统重新引导后启动。
$systemctl status postgresql.service ● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2017-10-07 10:23:46 UTC; 6min ago Main PID: 8159 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 2362) CGroup: /system.slice/postgresql.service $systemctl status theitroad@localhost $systemctl is-enabled postgresql enabled
测试PostgreSQL连接
在安装过程中,将自动创建一个postgres用户。该用户具有对整个PostgreSQL实例的完全超级管理员访问权限。在切换到该帐户之前,我们登录的系统用户应具有sudo特权。
sudo su - postgres
让我们将此用户密码重置为我们可以记住的强密码。
psql -c "alter user postgres with password 'theitroad@localhost'"
使用以下命令启动PostgreSQL提示符:
$psql
获取如下的连接详细信息。
$psql psql (13.0 (Ubuntu 13.0-1.pgdg18.04+1)) Type "help" for help. postgres=# \conninfo You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".
让我们创建一个测试数据库并让用户查看其是否正常工作。
postgres=# CREATE DATABASE mytestdb; CREATE DATABASE postgres=# CREATE USER mytestuser WITH ENCRYPTED PASSWORD 'theitroad@localhost'; CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE mytestdb to mytestuser; GRANT
列出创建的数据库:
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+---------+---------+------------------------ mytestdb | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres + | | | | | mytestuser=CTc/postgres 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 (4 rows)
连接到数据库:
postgres-# \c mytestdb You are now connected to database "mytestdb" as user "postgres".
安装的其他PostgreSQL实用程序(例如createuser和createdb)可用于创建数据库和用户。
theitroad@localhost:~$createuser myuser --password Password: theitroad@localhost:~$createdb mydb -O myuser theitroad@localhost:~$psql -l
我们可以在PostgreSQL服务器上创建并连接到数据库。
配置远程连接(可选)
在Ubuntu上安装PostgreSQL 13仅接受来自localhost的连接。在理想的生产环境中,我们将拥有一个中央数据库服务器和与其连接的远程客户端,但是当然要在专用网络(LAN)中。
要启用远程连接,请编辑PostgreSQL配置文件:
sudo nano /etc/postgresql/13/main/postgresql.conf
取消注释第59行,并更改"侦听"地址以接受网络内的连接。
# Listen on all interfaces listen_addresses = '*' # Listen on specified private IP address listen_addresses = '192.168.10.11'
更改后,重新启动postgresql服务。
sudo systemctl restart postgresql
确认收听地址。
# netstat -tunelp | grep 5432 tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 111 112837 11143/postgres tcp6 0 0 :::5432 :::* LISTEN 111 112838 11143/postgres
安装pgAdmin4管理工具
如果要从Web界面管理PostgreSQL数据库服务器,请安装pgAdmin4.
在Ubuntu上安装pgAdmin4