Linux安装部署Postgresql数据库

联网安装方案

Linux能在线安装依赖组件的前提下,可以快速安装部署PG数据库,安装过程使用root管理员帐号:

首先,使用如下命令自动下载Postgresql组件:

复制代码
# 在openEuler、Fedora或CentOS 8+上,你可能会使用:
sudo dnf update
sudo dnf install postgresql-server postgresql -y

# 在CentOS 7或RHEL 7上,你可能会使用:
sudo yum update
sudo yum install postgresql-server postgresql -y

# 在Ubuntu或Debian上,你可能会使用:
sudo apt update
# 在Debian和Ubuntu的包管理系统中,PostgreSQL的服务器和客户端工具是集成在 postgresql 包中的,所以不存在单独install postgresql-server一说
sudo apt install postgresql postgresql-contrib -y

安装完成后,需要初始化PostgreSQL数据库。运行以下命令:

复制代码
sudo postgresql-setup --initdb

正常情况下,返回信息如下:

复制代码
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

启动PostgreSQL服务,并设置为开机自启:

复制代码
sudo systemctl start postgresql
sudo systemctl enable postgresql

访问PostgreSQL:你可以通过 psql 命令行工具访问PostgreSQL。

在前面初始化时,会给系统预置一个postgres的用户用于管理数据库,我们可以切换到 postgres 用户并进入 psql

复制代码
sudo -i -u postgres
psql

# postgres默认没有密码,在psql模式下,通过如下命令设置密码:
\password postgres

创建用户和数据库:在 psql 中,你可以创建用户和数据库。

例如,创建一个名为 seeyondb 的用户(密码通用户名)和一个名为 seeyondatabase 的数据库:

复制代码
-- 在psql模式下创建帐号和库
CREATE USER seeyondb WITH PASSWORD 'seeyondb';
-- 在psql模式下新建一个数据库,管理权限交给seeyondb
CREATE DATABASE seeyondatabase OWNER seeyondb;

退出psql:完成后,可以输入 \q 退出 psql

调优PostgreSQL:编辑/var/lib/pgsql/data/postgresql.conf,调整数据库的最大连接和缓存数量:

复制代码
-- max_connections最大连接数的值,生产环境建议配置500,后续根据实际情况做调整:
max_connections=500

-- shared_buffers的值:缓存模块,可以加速SQL响应效率,建议此值设置为2G以上,生产环境一般推荐占用当前系统内存的15%~20%,配置如下:
shared_buffers=2048M

-- listen_addresses设置访问IP,默认localhost,设置*表示支持全部IP访问
listen_addresses = '*'

参数修改后,通过sudo systemctl restart postgresql设置生效。

配置PostgreSQL:编辑/var/lib/pgsql/data/pg_hba.conf文件来设置身份验证方法:

复制代码
# 增加一行host配置,允许seeyondatabase数据库可以被外部IP 192.168.1.100通过帐号seeyondb访问
host    seeyondatabase    seeyondb    192.168.1.100/32    md5
# 也可以把IP设置为0.0.0.0/0,表示任意外部IP访问,这种方式仅适合开发环境,生产环境不要随意暴露连接
host    seeyondatabase    seeyondb    0.0.0.0/0    md5

参数修改后,通过sudo systemctl restart postgresql设置生效。

配置防火墙,允许PG数据库端口可被外部访问:

复制代码
sudo firewall-cmd --add-port=5432/tcp --permanent
sudo firewall-cmd --reload

以上完成后,我们可以通过客户端远程连接PG数据库了:

如果客户端通过数据库工具连接不通(比如Navicat),可根据工具提示将必要的IP加入到pg_hba中,如下图所示表示192.168.188.1需要加入配置中:

相关推荐
云和恩墨15 分钟前
国网某省电力借zDBM重构数据库容灾防线,400TB核心资产迈入分布式实时保护时代
数据库·分布式·重构
deeper_wind17 分钟前
Rsync+sersync实现数据实时同步(小白的“升级打怪”成长之路)
linux·运维·网络
大千AI助手19 分钟前
ER图:数据库设计的可视化语言 - 搞懂数据关系的基石
数据库
tHaNkS71337 分钟前
嵌入式秋招面经八股(三)
linux·服务器·网络
李强57627821 小时前
语法制导的语义计算(包含python源码)
java·数据库·python
企销客CRM1 小时前
企微CRM系统中的任务分配与效率提升技巧
大数据·数据库·人工智能·数据分析·企业微信
Hello.Reader1 小时前
Redis 延迟排查全攻略
数据库·redis·缓存
jstart千语1 小时前
【Redisson】锁的可重试原理和看门狗机制
数据库·redis·缓存
时空自由民.1 小时前
linux Unix Socket 介绍
linux·运维·unix
IT小馋猫2 小时前
从源码到生产:Apache 2.4.57 自动化安装实战指南(附脚本)
linux·服务器·网络·网络安全