使用Postgresql源码安装

本次安装使用的版本是 postgresql-11.13: postgresql源码下载

安装目录

创建 postgresql 安装目录

1
2
3
mkdir /home/pgsql 		# 根目录
mkdir /home/pgsql/data # 存放数据
mkdir /home/pgsql/log # 存放日志

上传下载好的 postgresql-11.13.tar.gz 到服务上,并解压

1
tar -zxvf postgresql-11.13.tar.gz
创建系统用户

创建 postgresql 用户

1
2
3
4
addgroup postgres
adduser postgres
passwd postgres # 设置密码 postgres
chown -R postgres:postgres /home/pgsql/ # 给pgsql授权
安装依赖

因为是离线安装,所以现在服务器没有互联网,用到 yum 安装系统依赖库,我这里使用的是系统镜像 iso 挂载到本地,作为 yum 源。如何挂载iso文件作为yum本地源

1
yum install -y gcc bison gcc-c++ readline readline-devel zlib zlib-devel perl perl-devel

最小依赖: gcc、 gcc-c++、zlib-devel、readline-devel

其他依赖: perl-ExtUtils-Embed、pam-devel、libxml2-devel、libxslt-devel、openldapdevel、 python-devel、openssl-devel、cmake

编译安装
1
2
3
cd postgresql-11.13
./configure --prefix=/home/pgsql # 指定安装路径
make && make install # 编码安装
配置环境变量
1
2
3
4
5
6
7
8
vim /etc/profile

# 在文件后面追加如下代码
export PGHOME=/home/pgsql
export PGDATA=/home/pgsql/data
export PATH=$PATH:$PGHOME/bin

source /etc/profile # 使配置文件生效
初始化数据库

这里需要注意的是,初始化数据库的时候需要将用户切换成上面刚创建的用户 postgres如果使用 root 初始化会报 initdb: cannot be run as root.

1
2
su postgres
/home/pgsql/bin/initdb -D /home/pgsql/data/
修改配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
vim /home/pgsql/data/postgresql.conf

listen_addresses = '*'
port = 5432

vim /home/pgsql/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
host all all 0.0.0.0/0 trust

说明:

TYPE:pg的连接方式,local:本地unix套接字,host:tcp/ip连接

DATABASE:指定数据库

USER:指定数据库用户

ADDRESS:ip地址,可以定义某台主机或某个网段,32代表检查整个ip地址,相当于固定的ip,24代表只检查前三位,最后一位是0~255之间的任何一个

METHOD:认证方式,常用的有ident,md5,password,trust,reject。

  • md5是常用的密码认证方式。
  • password是以明文密码传送给数据库,建议不要在生产环境中使用。
  • trust是只要知道数据库用户名就能登录,建议不要在生产环境中使用。
  • reject是拒绝认证。

注意:生产环境,一定要修改密码验证方式

启动数据库
1
2
pg_ctl -D /home/pgsql/data/ -l logfile start
psql -v # 查看版本
登录数据库
1
psql -U postgres -d postgres
创建数据库用户
1
CREATE USER dbuser WITH PASSWORD '*******';

dbuser 替换成你要创建的用户名称,'******' 密码要用单引号括起来。

创建数据库
1
2
CREATE DATABASE dbname OWNER dbuser;
GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser; # 将新创建的数据库授权给用户

dbname 替换成你要创建的数据库名称,dbuser 替换成功数据库已有的数据库用户名称。

到此 postgresql 数据安装完成。

原文作者: dgb8901,yinxing

原文链接: https://www.itwork.club/2021/11/11/install-pgsql/

版权声明: 转载请注明出处

为您推荐

体验小程序「简易记账」

关注公众号「特想学英语」

If array contains element in Liquid file.