PostgreSQL_安装部署

embedded/2025/1/19 15:05:43/

一、Windows系统下安装

1.下载安装包

登录PostgreSQL: Downloads官网:

选择14.12版本,点击下载:

2.安装PostgrSQL14.12

双击exe安装包程序,准备安装:

选择安装路径:

选择想安装的工具:

选择数据存储路径:

设置超管密钥:

设置端口,一般是5432:

Locale建议使用C的本地化规则:

确认配置信息:

开始执行安装:

3.调整PostgreSQL配置
3.1pg_hba.conf 客户端身份验证规则配置

在pg_hba.conf文件中添加以下配置:

# postgres for localhost:
local   all             postgres                                scram-sha-256
host    all             postgres        127.0.0.1/32            scram-sha-256
host    all             postgres        0.0.0.0/0               reject
# remote connections:
host    all             all             0.0.0.0/0               scram-sha-256
postgresqlconf__69">3.2postgresql.conf 服务参数配置

postgresql.conf中主要调整以下配置:

listen_addresses = '*' # 监听地址
port = 5432 # 端?号
max_connections = 1000 # 最?连接数
superuser_reserved_connections = 10 # 预留给超管?户的连接数
password_encryption = scram-sha-256 # 密码加密?式
shared_buffers = 1024MB # 允许使?的内存,通常设置为物理内存的25%
timezone = 'Asia/Shanghai' # 时区,根据实际项?地理位置修改
log_timezone = 'Asia/Shanghai' # ?志时区,根据实际项?地理位置修改
4.重启PostgreSQL服务

二、Linux系统下安装(以CentOS7为例)

1.安装依赖环境
yum install -y perl-devel  perl-ExtUtils-Embed systemd-devel readline-devel uuid-devel zlib-devel clang-devel llvm-devel perlExtUtils-Embed tcl-devel libicu-devel libxml2-devel libxslt-devel python-devel python3-devel gcc gcc-c++ llvm3.9-devel openssl-devel lz4-devel pam-devel openldap-devel cmake bison flex  
2.规划存储路径
mkdir /opt/pgsql/source -p # pgsql源码包存放路径
mkdir /opt/pgsql/extensions -p # pgsql插件存放路径
mkdir -p /mnt/data/pgsql/pgsql5432 # pgsql数据?录
mkdir -p /mnt/data/pgsql/backup/{backup-db,backup-tmp} # pgsql备份?录
3.PG环境配置
3.1创建用户和用户组、主目录
useradd -d /home/postgres -s /bin/bash -U -m postgres
3.2配置用户环境变量
cat >> /home/postgres/.bash_profile << EOF
# PostgreSQL
export PGHOME=/usr/local/pgsql
export PATH=$PGHOME/bin:$PATH
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export PGDATA=/mnt/data/pgsql/pgsql5432
export PGHOST=/tmp
export PGPORT=5432
EOF
3.3授权相关目录
chmod 700 /mnt/data/pgsql/pgsql5432
chmod -R 700 /mnt/data/pgsql/backup
chown postgres:postgres -R /opt/pgsql  /mnt/data/pgsql
4.下载二进制安装包
wget -P /opt/pgsql/source https://ftp.postgresql.org/pub/source/v14.8/postgresql-14.8.tar.gz --no-check-certificate
5.包完整性校验
md5sum postgresql-14.8.tar.gz 
# MD5校验值:05a8078ee17d4f00779138767b802065
sha256sum postgresql-14.8.tar.gz 
# SHA256校验值:a3c32ff8168832d9637eb870f6e98f98506797fe5942555d70cd77558949a844

操作如下图所示:

6.解压与编译安装
tar xf postgresql-14.8.tar.gz   #解压
cd postgresql-14.8              #进到主目录下
#下面进行编译与安装
./configure --with-systemd --with-uuid=ossp --with-perl --with-python --with-tcl --with-icu --with-openssl --with-libxml --with-libxslt --with-lz4 --prefix=/opt/pgsql/pgsql-14.8  make -j 4 world && make -j 4 install-worldln -s /opt/pgsql/pgsql-14.8 /usr/local/pgsql    //创建软链接

7.安装检查与验证
su - postgres     #进到postgres用户下
cd /opt/pgsql/source/postgresql-14.8/     #进入pg主目录
make check # 安装成功后,测试?下编译的功能是否正常,全部正常会在末尾输出ALL tests passed

8.初始化数据库

建议:字符编码使UTF8,本地化使C,认证式使scram-sha-256

initdb -E UTF8 --locale=C -U postgres -W -A scram-sha-256 --data-checksums

9.初始化配置文件
cd /mnt/data/pgsql/pgsql5432/
mv postgresql.conf postgresql.conf.bak
mv pg_hba.conf pg_hba.conf.bak
touch postgresql.conf  pg_hba.conf

创建两个同名文件,配置如下:

pg_hba.conf:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     scram-sha-256
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
# replication connections:
local   replication     all                                     scram-sha-256
host    replication     all             127.0.0.1/32            scram-sha-256
host    replication     all             ::1/128                 scram-sha-256
# postgres for localhost:
local   all             postgres                                scram-sha-256
host    all             postgres        127.0.0.1/32            scram-sha-256
host    all             postgres        0.0.0.0/0               reject
# remote connections:
host    all             all             0.0.0.0/0               scram-sha-256

postgresql.conf:

listen_addresses = '*'
port = 5432
max_connections = 1000
superuser_reserved_connections = 10
unix_socket_directories = '/tmp'
tcp_keepalives_idle = 180
tcp_keepalives_interval = 10
tcp_keepalives_count = 3
password_encryption = scram-sha-256
shared_buffers = 1024MB
temp_buffers = 8MB
max_prepared_transactions = 50
work_mem = 4MB
maintenance_work_mem = 64MB
dynamic_shared_memory_type = posix
max_worker_processes = 8
wal_level = logical
fsync = on
synchronous_commit = remote_write
wal_sync_method = fsync
full_page_writes = on
max_wal_size = 5GB
min_wal_size = 80MB
max_wal_senders = 30
max_replication_slots = 10
hot_standby = on    //允许只读
max_logical_replication_workers = 4
log_destination = 'stderr'     //表示 PostgreSQL 将日志信息输出到标准错误输出流
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_file_mode = 0600
log_rotation_age = 1d
log_truncate_on_rotation = on
log_checkpoints = on
log_timezone = 'Asia/Shanghai'
autovacuum = on    //自动回收
idle_session_timeout = 1200000
datestyle = 'iso, mdy'
timezone = 'Asia/Shanghai'
lc_messages = 'C'
lc_monetary = 'C'
lc_numeric = 'C'
lc_time = 'C'
default_text_search_config = 'pg_catalog.english'
10.配置systemd服务托管
cat > /usr/lib/systemd/system/pgsql.service << EOF
[Unit]
Description=PostgreSQL database server 14
After=network-online.target
Wants=network-online.target[Install]
WantedBy=multi-user.target[Service]
Type=forking
User=postgres
Group=postgres
Environment=PGPORT=5432
Environment=PGDATA=/mnt/data/pgsql/pgsql5432
ExecStart=/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -s -w -t 300
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -s -m fast
ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -s
TimeoutSec=300
Restart=on-failure
RestartSec=3
OOMScoreAdjust=-1000
LimitNOFILE=65535
LimitNPROC=65535
EOF
11.启动pgsql.service
systemctl daemon-reload
systemctl enable pgsql
systemctl start pgsql
systemctl status pgsql
postgresql_286">12.连接postgresql数据库测试
su - postgres       #进入postgres用户下
psql -h 127.0.0.1 -p 5432 postgres       #连接数据库

这里执行 pqsql 和 psql -h 127.0.0.1 -p 5432 postgres 命令是同样的效果

如果想修改postgres用户的密码,可以使用以下语句进行修改:

postgres=# alter user postgres with password '123';
ALTER ROLE
postgres=# quit

http://www.ppmy.cn/embedded/155248.html

相关文章

蓝桥杯训练—芯片测试

文章目录 一、题目二、示例三、解析四、代码 一、题目 有n&#xff08;2≤n≤20&#xff09;块芯片&#xff0c;有好有坏&#xff0c;已知好芯片比坏芯片多 每个芯片都能用来测试其他芯片&#xff0c;用好芯片测试其他芯片时&#xff0c;能正确给出被测试芯片是好还是坏&#…

DAMA CDGA 备考笔记(二)

1. 考点分布 2. 第二章 数据处理伦理知识点总结 伦理是建立在是非观念上的行为准则。伦理准则通常侧重于公平、尊重、责任、诚信、质量、可靠性、透明度和信任等方面。数据伦理是一项社会责任问题不是法律问题。 度量指标&#xff1a;培训员工人数、合规/不合规事件、企业高管…

MySQL触发器:概念、作用

MySQL触发器&#xff1a;概念、作用与问题解决 在MySQL数据库管理系统中&#xff0c;触发器是一项强大且实用的功能。它为数据库的操作提供了一种自动化响应机制&#xff0c;在许多场景下极大地提升了数据管理的效率和数据的完整性。本文将深入探讨MySQL触发器是什么&#xff…

PyTorch使用教程(2)-torch包

1、简介 torch包是PyTorch框架最外层的包&#xff0c;主要是包含了张量的创建和基本操作、随机数生成器、序列化、局部梯度操作的上下文管理器等等&#xff0c;内容很多。我们基础学习的时候&#xff0c;只有关注张量的创建、序列化&#xff0c;随机数、张量的数学数学计算等常…

GaussDB中的Vacuum和Analyze

GaussDB中的Vacuum和Analyze 基本概念与区别手动Vacuum和Analyze查看Vacuum和Analyze记录Autovacuum配置参数 基本概念与区别 使用VACUUM、VACUUM FULL和ANALYZE命令定期对每个表进行维护&#xff0c;主要有以下原因&#xff1a; VACUUM FULL可回收已更新或已删除的数据所占据…

计算机网络 | IP地址、子网掩码、网络地址、主机地址计算方式详解

关注&#xff1a;CodingTechWork 引言 在计算机网络中&#xff0c;IP地址、子网掩码和网络地址是构建网络通信的基本元素。无论是企业网络架构、互联网连接&#xff0c;还是局域网&#xff08;LAN&#xff09;配置&#xff0c;它们都起着至关重要的作用。理解它们的工作原理&a…

神经网络常见操作(卷积)输入输出

卷积 dimd的tensor可以进行torch.nn.Convnd(in_channels,out_channels),其中nd-1,d-2对于torch.nn.Convnd(in_channels,out_channels)&#xff0c;改变的是tensor的倒数n1维的大小 全连接 使用torch.nn.Linear(in_features,out_features,bias)实现YXWT b,其中X 的形状为 (ba…

windows蓝牙驱动开发-BLE音频(三)

序列 音频驱动程序初始化 当 IHV ACX 流式处理驱动程序加载并确定它支持蓝牙 LE 音频流式处理时&#xff0c;它应通过以下方法来显示对该技术的支持&#xff1a;创建 ACXFACTORYCIRCUIT 对象&#xff0c;并使用音频终结点模板绑定 ID 中定义的 ID 向 ACX 注册蓝牙模板绑定。 …