暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

2_PostgreSQL实例安装与管理

原创 怕晒的太阳 2022-11-01
790

    PostgreSQL数据库支持Linux和Windows安装,登录Postgres官网下载对应系统安装包进行安装。Linux系统安装的支持二进制和源码编译安装。下面将介绍源码编译安装。


1.下载安装包

下载postgresql的源码包:https://www.postgresql.org/ftp/source/,根据要安装的版本进行下载安装包。

  

2.系统依赖

安装系统依赖之前,一定记着需要挂载Linux操作系统镜像源,否则导致安装依赖失败。

开发包

yum groupinstall "Development tools" --安装gcc、 make  

重要依赖包  

yum install -y bison -- 语法分析器
yum install -y flex -- 词法分析器
yum install -y readline-devel -- psql客户端的命令历史
yum install -y zlib-devel -- pg_dump/pg_restore的压缩功能支持

3.编译安装

 3.1 添加用户组和用户

登录Linux操作系统,在root用户下执行如下命令,创建用户组和用户。

groupadd -g 300 postgres
useradd -u 300 postgres  -g postgres


3.2 创建数据库库文件存储目录,赋予postgres用户权限

在root用户下,创建安装数据库目录,根据当前安装数据库的机器进行创建路径。同时赋予安装目录postgres用户权限

mkdir -p {/data/postgres/pgsql15,/data/postgres/data}

chown -R postgres. {/data/postgres/pgsql15,/data/postgres/data}


3.3 解压文件

进入放置下载安装包的目录,执行如下命令进行解压

cd  /data/postgres

tar  -xf  postgresql-15.0.tar.gz


3.4 编译配置,指定目录

下面编译配置命令的介绍:

• ./configure --help
• 重要选项
#--prefix=PREFIX -- 安装路径
#--with-blocksize=BLOCKSIZE -- 数据库blocksize,缺省8KB
# --with-segsize=SEGSIZE -- 表文件的段尺寸,缺省1GB
#--with-llvm -- 使用基于JIT的llvm编译  

在root用户下,解压完成postgres安装包以后,进入解压的目录,进行编译配置指定安装数据库app软件目录。

cd  postgresql-15.0

./configure --prefix=/data/postgres/pgsql15


编译配置完成,出现如下提示表示编译配置成功。


在root用户下,编译:

make


在root用户下,编译安装。如果编译是成功且没有报错,编译安装才能保证成功执行。

make install


3.5 初始化数据库目录并启动

在root编译安装完成后,需要修改数据库库文件的路径权限(目录必须是700),才能保证postgres用户正常访问,并成功初始化数据库。

cd /data/postgres

chmod  -R 700  {pgsql15,data}


在从root用户下切换用户
   su - postgres

A)初始化数据:/data/postgres/pgsql15/bin/initdb -D /data/postgres/data -E utf8 --wal-segsize=8 

使用initdb命令初始化数据库簇
# -D: database cluster的主目录
# -E:数据库字符编码
# --wal-segsize: WAL日志文件尺寸
# -U:指定超级用户
# --locale:数据库区域语言  


B)启动数据库

启动时,报如下错误表示数据库的端口被占用,需要重新修改端口才能启动。


进入到数据库数据目录,cd /data/postgres/data,修改数据库端口。

sed -i 's/#port =.*/port = 5435/g' postgresql.conf
grep 'port =' postgresql.conf


启动数据库:/data/postgres/pgsql15/bin/pg_ctl -D /data/postgres/data -l logfile start

出现如下图的进程表示,启动成功。


3.6 新增环境变量

切换到数据库用户postgres,在.bashrc文件中添加以下内容后source环境变量 source .bashrc

export PGHOME=/data/postgres/pgsql

export PGDATA=/data/postgres/data

export LD_LIBRARY_PATH=$PGHOME/lib

export PATH=$PGHOME/bin:$PATH


4.管理实例 

登录实例:psql -d postgres -p 5435 

-p 端口

-d 数据库名


启动数据库:pg_ctl start [-D datadir] [-l filename] [-W] [-t seconds] [-s] [-o options] [-p path] [-c]  


停止数据库:pg_ctl stop [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t seconds] [-s]
-m:数据库关闭的模式
-smart:等待所有数据库连接断开后再关闭数据库
-fast:回滚所有活动事务,然后强制断开所有会话,最后再正常关闭数据库
-immediate:立即终止所有服务器进程,等于宕机,下次启动会进入恢复状态。不推荐使用  


查看数据库状态:pg_ctl status [-D datadir] 

 

5.数据库基本配置

数据库实例基本配置

• postgresql.conf

• 位于$PGDATA数据库簇的目录下

shared_buffers = 512MB    #重启数据库生效,一般是主机内存的20%~25%
wal_buffers = 16MB
temp_buffers = 8MB
work_mem = 4MB
maintenance_work_mem = 64MB
• pg_ctl reload和SELECT pg_reload_conf()重新加载动态参数配置  

数据库监听配置  

• postgresql.conf
数据库监听配置
listen_addresses = '*'
port = 5435

配置完成监听后,需要重启数据库才能生效。

 

数据库访问认证

• pg_hba.conf
• 格式如下:

[TYPE]  [DATABASE]  [USER]  [ADDRESS]  [METHOD]
• pg_ctl reload和SELECT pg_reload_conf()动态重新加载配置


允许的连接方式:
-- local匹配使用Unix套接字的连接
-- host匹配使用TCP/IP的连接,同时支持SSL和非SSL
-- hostssl匹配SSL的TCP/IP连接,要使用该类型必须:
• 客户端和服务器端都安装OpenSSL
• 编译安装PostgreSQL时configure参数with-openssl打开
• postgresql.conf参数ssl=on
-- hostnossl匹配非SSL的TCP/IP连接 

认证方式:

PostgreSQL支持十多种认证方法,常见的有trust、 reject、 md5和password等
– trust不需要密码
– reject拒绝登录
– md5使用双重md5加密密码
– password使用明文密码  

最后修改时间:2022-11-03 15:06:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论