Linux上安装PG

文章详细介绍了在Linux(统信系统)上安装PostgreSQL的过程,包括下载安装包,解决readline和zlib库的问题,配置环境变量,初始化数据库,设置权限,启动服务,以及通过Navicat进行远程连接的步骤。同时提到了防火墙配置以允许远程访问。
摘要由CSDN通过智能技术生成

1.下载安装包

官网地址:PostgreSQL: File Browser

 选择gz安装包

2.上传到linux服务器,然后解压缩

tar -zxvf postgresql-13.0.tar.gz

3.进入到解压后的postgresql-13.0目录下,执行:./configure --prefix=/usr/local/postgresql

./configure --prefix=/usr/local/postgresql  (后面这个路径可以自定义)

报错:configure: error: readline library not found

原因是没有找到readline

解决方法:yum install -y readline-devel
报错:configure: error: zlib library not found
解决方法:yum install zlib-devel

没解决还可以更换yum源,可以在网上搜索下相对应文档

但我当时linux服务器是统信系统,上述两个方法都不行,使用yum命令下载提示说下载元数据失败,更换源也没找到统信系统对应的更换yum源的文档

并且我查看是有readline的

发现有readline,但依然报错说找不到

后面发现解决configure: error: readline library not found错误

还有另一个解决方法:

        在执行命令 ./configure 加上 --without-readline 选项,不编译 readline

 但是不建议这样做,readline 的作用是能够在 pg 控制台读取历史命令,就像在 linux shell 中按上下键读取历史命令,不需要再手动输入重复的命令

 ./configure --prefix=/usr/local/postgresql --without-readline

接着执行make和make install进行安装编译

 过程有点儿长,显示这行信息代表完成 

执行完毕,在/usr/local目录下就会有postgresql这个目录

4. 创建data目录和log目录

5.加入系统环境变量:

view /etc/profile

小写o进入编辑
export PGHOME=/usr/local/postgresql
export PGDATA=/usr/local/postgresql/data
export PATH=P A T H : PATH:PATH:JAVA_HOME/bin:$PGHOME/bin

Esc 退出编辑

:wq! 强行保存并退出

 使配置文件生效:source /etc/profile

6.增加用户postgres并赋权

useradd postgres
chown -R postgres:root /usr/local/postgresql

7.初始化数据库

su postgres  (切换到postgres用户)
/usr/local/postgresql/bin/initdb -D /usr/local/postgresql/data/

注意:
不能在 root 用户下初始数据库,否则会报错

8.编辑配置文件

vim /usr/local/postgresql/data/postgresql.conf


把60行的listen_addresses = 'localhost’改为listen_addresses = ‘*’,并放开注释
把对应的port=5432放开注释

vim /usr/local/postgresql/data/pg_hba.conf

添加一行:
host all all 0.0.0.0/0 md5

说明:
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是拒绝认证。
 

9.启动服务

pg_ctl start -l /usr/local/postgresql/log/pg_server.log

 看到postgres=#代表成功

当我们在postgresql的命令行敲命令的时候我们会发现命令行会发生变化,在postgres=#和postgres-#之间切换:

postgres-#的意思是:你当前的命令输入还不完整。
postgres=#的意思是:当前没有输入新的命令

使用\password进行设置密码,默认用户名是:postgres,这里我们就不去修改用户名了,只修改密码

使用\l 进行查看

设置开机自启动

chkconfig --add postgresql
 

查看版本
psql -V

10.navicat远程连接 

如果服务器是开启防火墙状态的请注意 将数据库的端口开放否则链接会报错

命令:firewall-cmd --add-service=postgresql --permanent
# 5432为postgresql端口
命令:firewall-cmd --zone=public --add-port=5432/tcp --permanent
命令:firewall-cmd --reload
# 查看防火墙开放端口
firewall-cmd --zone=public --list-ports


————————————————
版权声明:本文为CSDN博主「Dark Sky.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dark_Blue__/article/details/125187959

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值