【二】CentOS7安装postgresql并配置远程连接

来源:互联网 发布:excel 删除重复数据 编辑:程序博客网 时间:2024/06/06 14:06

百度有很多centos7安装postgresql的教程,但是版主百度到的所有都不是那么完整,多多少少会有一些问题。正像其中有一篇开头写得,centos7安装postgresql有多难,在于你找的那篇文章有多少坑。本篇挑选了一个看起来相对完整的文章,根据他的教程进行安装,并对过程中遇到的坑进行解决。

原文:http://www.cnblogs.com/tjpanda88/p/4306149.html

·        安装

使用yum安装

yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpmyum install postgresql94-server postgresql94-contrib

桌面右键,打开终端,输入su root,输入密码后进入root权限,输入第一句代码

如果出现/var/run/yum.pid已被锁定,PID11154的另一个程序正在运行。

则输入rm -rf /var/run/yum.pid ,用来清空所有运行中的yum

资料网址:http://blog.csdn.net/weini1111/article/details/71056608

输入后重新输入第一句,此时会有无法打开的错误


复制其中连接到浏览器,打开后发现对应的9.4-1版本不存在

所以修改第一句代码,把其中9.4-3,重新执行

执行完毕后输入第二句代码,执行完毕

设置开机启动

systemctl enable postgresql-9.4.service
systemctl start postgresql-9.4.service


执行第一句代码时正常执行,但是执行第二句代码时出现错误“Job for postgresql-9.4.service failed…”

此时忽略错误,继续执行后面

初始化数据库

/usr/pgsql-9.4/bin/postgresql94-setup initdb

初始化执行成功后,重新执行启动数据库服务,此时不再有上述错误。输入systemctl status postgresql-9.4.service ,此时不再出现错误。

查看数据库服务信息,出现绿色active(running)说明服务启动成功

开启远程访问

/var/lib/pgsql/9.4/data/postgresql.conflisten_addresses ='*'/var/lib/pgsql/9.4/data/pg_hba.conf

# IPv4 local connections:

host    all             all            127.0.0.1/32           trusthost    all             all            192.168.117.1/32       trust


# IPv6 localconnections:

host    all             all            ::1/128                trust

开启远程访问,此时需要打开系统文件,直接修改文件信息,点击桌面上方:位置→计算机,选择上方路径,会发现没有pgsql访问权限

此时在终端输入

systemctlstop postgresql-9.4.service  停止服务

chmod –R 777/var/lib/pgsql  修改文件夹权限

执行成功后重新选择:位置→计算机,选择上方路径后,发现此时路径可以打开。


修改图中两个文件中参数。注意不要有多余修改,会造成服务无法启动。



此时终端重新输入命令后会发现又无法启动服务


因为需要重新把pgsql文件夹权限关闭,输入chmod –R 700 /var/lib/pgsql

执行后在执行启动服务命令

修改用户密码

su postgrespsql -U postgresALTER USER postgres WITH PASSWORD 'P0stgres'\q

执行第一句进入数据库权限,当执行第二句时又会提示权限不够

同上,将权限不足路径权限放开,先要进入root权限

su root

chmod –R 777/home/oldhero

重新进入服务器权限

su postgres

psql

此时不再提示权限不够,继续执行修改密码命令

ALTERUSER postgres WITH PASSWORD 'P0stgres'

执行成功后输入\q退出数据库脚本模式

此时还要切换到root权限,将刚才的路径权限关闭,不然数据库服务器仍然无法启动。

重新关闭权限后输入启动服务器语句,启动数据库服务器

查看服务器状态

至此postgresql安装成功,并且配置远程连接权限完成。

·        防火墙

新建文件/usr/lib/firewalld/services/postgres94.xml

<?xml version="1.0"encoding="utf-8"?><service>        <short>Postgres9.4 Database service</short>        <description>Postgres</description>        <portprotocol="tcp"port="5432"/></service>

修改防火墙设定

firewall-cmd --permanent --add-service=postgres94

firewall-cmd --reload

但是最后还是需要开放防火墙端口才能在其他电脑正式连接,版主采用粗暴方式直接关闭了系统防火墙,并设置了重启不再启用防火墙,资料连接:http://www.linuxidc.com/Linux/2015-05/117473.htm

当然,此处防火墙配置各位可以自行选择

 

 

至此,局域网内其他电脑可以对此系统postgresql进行远程连接及数据操作。