更新时间:2022-12-17 10:53:33浏览次数:711+次
本文介绍在Ubuntu 22.04 Linux系统上安装PostgreSQL 14的详细步骤,内容包括数据库的配置、用户的创建、设置超级用户密码以及从远程客户端连接到数据库。
安装PostgreSQL 14的详细步骤
步骤1:更新系统和安装依赖项
在Ubuntu 22.04(Jammy Jellyfish)上,执行系统更新和升级:
sudo apt update && sudo apt -y full-upgrade
提交内核更新后,需要重新启动系统:
[ -f /var/run/reboot-required ] && sudo reboot -f
重新启动后,安装配置PostgreSQL存储库所需的关键软件包。
安装必要的软件包:
sudo apt install vim curl wget gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates
步骤2:在Ubuntu 22.04上添加PostgreSQL存储库
默认OS包存储库中存在的PostgreSQL版本不是最新的:
$ apt policy postgresql
我们建议您添加存储库并从中在Ubuntu 22.04上安装PostgreSQL 14。让我们导入用于签名包的GPG密钥:
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
使用以下命令在Ubuntu 22.04系统上添加PostgreSQL存储库:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
通知系统新添加的存储库:
sudo apt update
新添加的存储库的Repo元数据同步应成功:
Hit:1 http://apt.postgresql.org/pub/repos/apt jammy-pgdg InRelease
步骤3:在Ubuntu 22.04上安装PostgreSQL 14
现在我们已经添加了存储库,让我们使用以下命令安装PostgreSQL14:
sudo apt install postgresql-14
PostgreSQL服务应自动启动,并可按如下方式进行验证:
$ systemctl status postgresql@14-main.service
PostgreSQL的安装版本可以通过以下命令进行检查:
sudo -u postgres psql -c "SELECT version();"
样本输出:
PostgreSQL 14.3 (Ubuntu 14.3-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0, 64-bit
(1 row)
步骤4:连接到PostgreSQL 14数据库
有两种方法可以访问PostgreSQL管理控制台。
1、运行postgres命令
$ sudo -u postgres psql
2、第二种方法
对于此选项,首先必须切换到PostgreSQL 14安装后创建的Postgres用户:
sudo -i -u postgres
在这里,连接到实例:
$ psql
现在,使用上述任何方法连接到实例,您都仍然可以管理数据库。
步骤5:配置PostgreSQL 14远程访问(可选)
PostgreSQL通过一个称为角色的概念支持客户端身份验证的多种身份验证方法。默认的身份验证方法是将Postgres角色与Unix系统帐户关联的ident身份验证。支持的所有受支持的身份验证方法包括:
Ident–仅通过TCP/IP连接支持。它获取带有可选用户名映射的客户端系统用户名。
Password–角色使用密码连接。
Peer–类似于ident,但仅支持本地连接。
Trust–只要满足pg_hba.conf中定义的条件,就允许角色连接。
为了远程访问数据库服务器实例,我们应该在/etc/postgresql/14/main/pg_hba.conf文件中进行更改。
通过运行以下命令,允许在PostgreSQL服务器上进行密码验证:
sudo sed -i '/^host/s/ident/md5/' /etc/postgresql/14/main/pg_hba.conf
接下来是将识别方法从对等更改为信任,如下所示:
sudo sed -i '/^local/s/peer/trust/' /etc/postgresql/14/main/pg_hba.conf
要允许从任何地方访问实例,请按如下方式编辑命令:
sudo vim /etc/postgresql/14/main/pg_hba.conf
在文件中,添加以下行:
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 scram-sha-256
host all all 0.0.0.0/0 md5
现在,通过编辑/etc/postgresql/14/main/postgresql.conf处的conf文件,来确保服务正在监听*,如下所示:
sudo vim /etc/postgresql/14/main/postgresql.conf
在文件中,取消注释并编辑该行,如下图所示:
listen_addresses='*'
现在重新启动并启用PostgreSQL,以使更改生效:
sudo systemctl restart postgresql
sudo systemctl enable postgresql
步骤6:在PostgreSQL 14中管理用户
使用psql命令连接到PostgreSQL实例:
sudo -u postgres psql
我们将使用密码Passw0rd创建一个名为admin的新超级用户:
CREATE ROLE admin WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'Passw0rd';
验证已创建具有所需权限的用户:
postgres=# \du
在Postgres shell中,让我们创建一个名为demo1的用户,并将其访问权限分配给demodb:
create database demodb;
create user demo1 with encrypted password 'Passw0rd';
grant all privileges on database demodb to demo1;
步骤7:连接到远程PostgreSQL 14实例
检查PostgreSQL服务是否正在侦听端口5432:
$ ss -tunelp | grep 5432
如果您有UFW防火墙,则允许该端口进行远程连接:
sudo ufw allow 5432/tcp
从远程客户端计算机连接psql命令的语法为:
psql 'postgres://<username>:<password>@<host>:<port>/<db>?sslmode=disable'
考虑下面的一个示例来演示如何启动远程连接:
psql 'postgres://admin:Passw0rd@192.168.205.10:5432/postgres?sslmode=disable'
至此,整个操作步骤完成。这说明我们已经成功在Ubuntu 22.04 Linux机器上安装和配置PostgreSQL 14了。
相关资讯