如何Ubuntu部署PostgreSQL?
- By : Will
- Category : PostgreSQL

1 基础知识
1.1 PostgreSQL简介
PostgreSQL是一个功能强大的开源对象关系数据库系统,经过30多年的积极开发,具有良好的可靠性、强大的功能和优良的性能。
PostgreSQL是Berkeley开源代码的后代,它支持大部分SQL标准。
1.2 PostgreSQL的特点
– 高度靠性
– 考度可扩展性(支持自定义数据类型、函数和不同的编程语言代码而无需编译)
1.3 PostgreSQL的架构
2 最佳实践
2.1 系统的配置
2.1.1 基本配置
IP Address = 10.168.0.107
OS = Ubuntu 24.04 LTS
HostName = postgresql.cmdschool.org
2.1.2 安装常用工具
apt install -y vim
2.1.3 升级系统
apt full-upgrade -y
执行完升级之后,重启操作系统,
reboot
2.2 安装PostgreSQL包
2.2.1 安装PostgreSQL服务端
apt install -y postgresql
2.2.2 检查安装的软件包
dpkg -l *postgresql*
显示如下:
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=========================-=====================-============-========================================================= ii postgresql 16+257build1.1 all object-relational SQL database (supported version) ii postgresql-16 16.9-0ubuntu0.24.04.1 amd64 The World's Most Advanced Open Source Relational Database un postgresql-16-jit-llvm (no description available) un postgresql-9.1 (no description available) un postgresql-client (no description available) ii postgresql-client-16 16.9-0ubuntu0.24.04.1 amd64 front-end programs for PostgreSQL 16 ii postgresql-client-common 257build1.1 all manager for multiple PostgreSQL client versions ii postgresql-common 257build1.1 all PostgreSQL database-cluster manager un postgresql-contrib-16 (no description available) un postgresql-doc (no description available) un postgresql-doc-16 (no description available) un postgresql-pgmp (no description available) un postgresql-server-dev-all (no description available)
2.3 配置PostgreSQL
2.3.1 确认服务配置服务自启动
systemctl status postgresql.service systemctl enable postgresql.service
2.3.2 检查服务的启动
ss -antp | grep postgres
其他的服务控制命令,请参考如下指令,
LISTEN 0 200 127.0.0.1:5432 0.0.0.0:* users:(("postgres",pid=4398,fd=6))
注:以上可知该服务使用的端口是“5432/tcp”且只有本机可访问
亦可以进程的方式查看,
pgrep -a postgres
其他的服务控制命令,请参考如下指令,
4398 /usr/lib/postgresql/16/bin/postgres -D /var/lib/postgresql/16/main -c config_file=/etc/postgresql/16/main/postgresql.conf 4399 postgres: 16/main: checkpointer 4400 postgres: 16/main: background writer 4402 postgres: 16/main: walwriter 4403 postgres: 16/main: autovacuum launcher 4404 postgres: 16/main: logical replication launcher
注:以上可知数据目录为“/var/lib/postgresql/16/main”
2.3.3 检查服务的版本
psql -V
可见如下显示,
psql (PostgreSQL) 16.9 (Ubuntu 16.9-0ubuntu0.24.04.1
2.4 连接到PostgreSQL
2.4.1 切换到PostgreSQL用户
su - postgres
2.4.2 登录到PostgreSQL
psql
显示如下,
psql (9.6.11) Type "help" for help. postgres=#
注:以上证明你处于PostgreSQL提示符环境
2.4.3 显示当前的数据库
\l
数据库显示如下,
List of databases Name | Owner | Encoding | Locale Provider | Collate | Ctype | ICU Locale | ICU Rules | Access privileges -----------+----------+----------+-----------------+---------+---------+------------+-----------+----------------------- postgres | postgres | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | template0 | postgres | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | =c/postgres + | | | | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | =c/postgres + | | | | | | | | postgres=CTc/postgres (3 rows)
2.4.4 获取帮助
\h
2.4.5 退出PostgreSQL登录
\q
2.5 配置TCP/IP用户登录
2.5.1 修改管理员密码
su - postgres psql \password
2.5.2 开启协议的连接方式
cp /etc/postgresql/16/main/postgresql.conf /etc/postgresql/16/main/postgresql.conf.default vim /etc/postgresql/16/main/postgresql.conf
加入如下配置:
listen_addresses = '*' port = 5432 password_encryption = scram-sha-256
重启服务使配置生效,
systemctl restart postgresql.service
2.5.3 配置用户连接权限
vim /etc/postgresql/16/main/pg_hba.conf
加入如下配置:
# IPv4 local connections: host all all 0.0.0.0/0 scram-sha-256
重载使服务生效,
systemctl reload postgresql.service
测试登陆,
psql -h 10.168.0.107 -U postgres
参阅文档
==============
简介页面
———-
https://www.postgresql.org/about/
下载页面
———
https://yum.postgresql.org/repopackages.php
https://www.postgresql.org/download/
安装页面
——–
https://www.postgresql.org/download/linux/redhat/
使用文档
——–
https://www.postgresql.org/docs/9.6/index.html
https://www.postgresql.org/docs/
没有评论