当前位置:   article > 正文

Linux环境安装PostgreSQL-12.2_postgresql-12.2.tar.gz

postgresql-12.2.tar.gz

Linux环境安装PostgreSQL-12.2

环境及资源

  • Linux版本:CentOS release 6.4
  • PostgresSQL版本:postgresql-12.2
  • PostgreSQL官网下载地址:https://www.postgresql.org/ftp/source/v12.2/

我下载的是postgresql-12.2.tar.gz

  • 参考文档:推荐看英文文档

1)英文文档:https://www.postgresql.org/docs/12/installation.html

2)中文文档:http://www.postgres.cn/v2/document

3)在CentOS 7上安装&配置PostgreSQL 12

正文

安装路径为/home/pg/,登录 root,创建用户 pg,并设置密码

# 添加用户
user add
# 为用户添加密码
passwd 用户名
  • 1
  • 2
  • 3
  • 4

1、 解压

tar -zxvf postgresql-12.2.tar.gz
  • 1

2、 依次执行命令

需要的话,make 可以改为 gmake

./configure

make

su

make install

adduser pg

mkdir /home/pg/data

chown pg /home/pg/data

su pg

/usr/local/pgsql/bin/initdb -D /home/pg/data

/usr/local/pgsql/bin/postgres -D /home/pg/data >logfile 2>&1 &

/usr/local/pgsql/bin/createdb test

/usr/local/pgsql/bin/psql test
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

./configure 是检查当前环境能否安装 PG,以下是我遇到的报错和解决方案,若没有,请前往下载对应的包

报错1:configure: error: no acceptable C compiler found in $PATH:

解决:

yum install gcc
  • 1

报错2:configure: error: readline library not found

解决:

yum install readline-devel
  • 1

离线环境需要下载对应的包

  1. ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
  2. ncurses-libs-5.7-3.20090208.el6.x86_64.rpm
  3. readline-6.0-3.el6.x86_64.rpm
  4. readline-devel-6.0-3.el6.x86_64.rpm

由于服务器已经安装过较新版本的 readline-6.0.4,导致依赖包无法安装,遂降级安装

rpm -Uvh --oldpackage readline-6.0-3.el6.x86_64.rpm
  • 1

报错3:error: zlib library not found

解决方法

yum install zlib-devel
  • 1

3、 启动或重启server

* 先确保是切换到了/pgsql/bin目录下,并且切换Linux用户postgres

cd /usr/local/pgsql/bin/
su postgres
  • 1
  • 2

在这里插入图片描述

启动server:

./pg_ctl start -D /home/pg/data
  • 1

如果启动成功,显示信息如下

在这里插入图片描述

至此,PostgreSQL安装成功。

重启server:

./pg_ctl restart -D /home/pg/data
  • 1

如果重启成功,显示信息如下

在这里插入图片描述

4、 新建数据库和可以登录数据库的用户密码

* 确保是在/usr/local/pgsql/bin/目录下

创建数据库:

./createdb mydb
  • 1

创建用户(如用户名为lin,密码为LinBug)有两种方式,

1) CREATE USERCREATE ROLECREATE USER是CREATE ROLE的一个别名。 唯一的区别是CREATE USER命令缺省是LOGIN, 而CREATE ROLE命令缺省是NOLOGIN

先进入默认的postgres数据库:

./psql
  • 1

然后执行:

CREATE USER jfwg WITH PASSWORD 'jfwg';
  • 1

创建成功提示如下

在这里插入图片描述

2) pg封装的命令方式:

./createuser -P jfwg
  • 1

这会提示你输入新建用户的密码,重复输入密码后,创建成功

在这里插入图片描述

5、访问数据库

* 确保在/usr/local/pgsql/bin/目录下,

以默认用户名访问默认数据库(默认的用户名和数据库名都是postgres):

./psql
  • 1

于是进入PG的交互终端psql

在这里插入图片描述

以名为lin的角色登录名为mydb的数据库:

./psql test -U jfwg
  • 1

可以看出,当psql终端的提示符为**=#时,表示当前登录的是超级用户,而当提示符为=>**时则为普通用户

在这里插入图片描述

6、远程访问数据库设置

* 远程访问数据库的认证方式主要有很多方式,我只设置基于TCP/IP连接的trust认证方式

需设置两个配置文件,

1)修改配置文件postgresql.conf,

vim /home/pg/data/postgresql.conf
  • 1

修改监听地址:

#listen_addresses=’localhost’
#将上面这行改成如下
listen_addresses=’*’
  • 1
  • 2
  • 3

2)修改配置文件/home/pg/data/pg_hba.conf:

vim /home/pg/data/pg_hba.conf 
  • 1

添加一条IP授权记录(如192.168.2.23),可以对一个网段授权

# 这是在/home/pg/data/pg_hba.conf文件里加
# IPv4 myhost connections:
host    all         all         192.168.2.0/24          trust
  • 1
  • 2
  • 3

在这里插入图片描述

当然,可以设置所有网段IP可以访问:

# 这是在/home/pg/data/pg_hba.conf文件里加
# IPv4 remote address connections:
host    all         all         0.0.0.0/0                 trust
  • 1
  • 2
  • 3

在这里插入图片描述

设置完需要重启数据库才能生效。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/534336
推荐阅读
相关标签
  

闽ICP备14008679号