Linux环境安装PostgreSQL-12.2

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、 解压

tar -zxvf postgresql-12.2.tar.gz

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

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

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

解决:

yum install gcc

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

解决:

yum install readline-devel

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

  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

报错3:error: zlib library not found

解决方法

yum install zlib-devel

3、 启动或重启server

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

cd /usr/local/pgsql/bin/
su postgres

在这里插入图片描述

启动server:

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

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

在这里插入图片描述

至此,PostgreSQL安装成功。

重启server:

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

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

在这里插入图片描述

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

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

创建数据库:

./createdb mydb

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

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

先进入默认的postgres数据库:

./psql

然后执行:

CREATE USER jfwg WITH PASSWORD 'jfwg';

创建成功提示如下

在这里插入图片描述

2) pg封装的命令方式:

./createuser -P jfwg

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

在这里插入图片描述

5、访问数据库

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

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

./psql

于是进入PG的交互终端psql

在这里插入图片描述

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

./psql test -U jfwg

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

在这里插入图片描述

6、远程访问数据库设置

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

需设置两个配置文件,

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

vim /home/pg/data/postgresql.conf

修改监听地址:

#listen_addresses=’localhost’
#将上面这行改成如下
listen_addresses=’*’

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

vim /home/pg/data/pg_hba.conf 

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

发布了45 篇原创文章 · 获赞 103 · 访问量 169万+

猜你喜欢

转载自blog.csdn.net/WTUDAN/article/details/104614352