CentOS 7、阿里云CentOS 6.5安装Postgre 9.6

来源:互联网 发布:java socket 心跳机制 编辑:程序博客网 时间:2024/04/29 10:10

1、添加RPM

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

RPM
RPM_y
2、安装PostgreSQL 9.6

yum install postgresql96-server postgresql96-contrib postgresql96-devel

/安装内容/
postgresql96-server 数据库核心服务端
postgresql96-contrib 附加第三方扩展
postgresql96-devel C语言开发Header头文件和库
(最好将需要安装的内容在命令中写全,实测在CentOS 7之前的版本会出现少装的情况。)
install
3、验证PostgreSQL安装情况

rpm -aq| grep postgres

安装情况
默认Postgresql数据库路径是 /var/lib/pgsql/9.6/data ,可以新建一个目录,假如是/mnt/myvdb

cd /mntsudo mkdir myvdbsudo chown -R postgres:postgres myvdbsudo chmod 700 myvdbvi /usr/lib/systemd/system/postgresql-9.6.serviceEnvironment=PGDATA=/mnt/ myvdb /  修改为自己的新的数据路径

4、初始化数据库

/usr/pgsql-9.6/bin/postgresql96-setup initdb

init
5、开启postgre服务
CentOS 7

systemctl start postgresql-9.6.service

阿里云CentOS 6.5

service postgresql-9.6 start

6、PostgreSQL开机启动

systemctl enable postgresql-9.6.service

开机启动
7、修改用户密码

su - postgres 

切换用户,执行后提示符会变为 ‘-bash-4.2$’

psql -U postgres 

登录数据库,执行后提示符变为 ‘postgres=#’

ALTER USER postgres WITH PASSWORD 'admin';  

设置postgres用户密码。此处注意分号,这是一个SQL语句,而不是Linux命令。若设置成功,则会返回
ALTER ROLE
SQL

\q

退出数据库连接

exit

退出数据库
8、打开防火墙
CentOS 7防火墙中内置了PostgreSQL服务,配置文件位置在
/usr/lib/firewalld/services/postgresql.xml,只需以服务方式将PostgreSQL服务开放即可。

firewall-cmd --add-service=postgresql --permanent  开放postgresql服务firewall-cmd --zone=public --add-port=5432/tcp --permanentfirewall-cmd --reload  重载防火墙

阿里云CentOS 6.5

vi /etc/sysconfig/iptables 

并添加以下行

-A INPUT -m state –state NEW -m tcp -p tcp –dport 5432 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT 

退出并保存文件。重启iptables服务:
service iptables restart
若是新申请的服务器,防火墙未开启,则开启防火墙

service iptables start

如果没有防火墙配置文件(本人在阿里云CentOS6.5上踩过坑),则
1)任意执行一条iptables的防火墙配置规则指令

iptables -P OUTPUT ACCEPT

2)对iptables配置进行保存

service iptables save

3)重启 iptables服务器

service iptables restart

防火墙iptables文档的配置参考

vi /etc/sysconfig/iptables 
# Firewall configuration written by system-config-firewall  # Manual customization of this file is not recommended.  *filter  :INPUT ACCEPT [0:0]  :FORWARD ACCEPT [0:0]  :OUTPUT ACCEPT [0:0]  -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  -A INPUT -p icmp -j ACCEPT  -A INPUT -i lo -j ACCEPT  -A INPUT -m state –state NEW -m tcp -p tcp –dport 5432 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT  -A INPUT -j REJECT --reject-with icmp-host-prohibited  -A FORWARD -j REJECT --reject-with icmp-host-prohibited  COMMIT

CentOS 7

firewall-cmd --zone=public --list-ports     查看开放端口

port
阿里云CentOS 6.5

/etc/init.d/iptables status

9、开启远程访问

vi /var/lib/pgsql/9.6/data/postgresql.conf

修改#listen_addresses = ‘localhost’ 为 listen_addresses=’*’
修改#port = 5432 为 port = 5432
‘*’也可以改为任何想要开放的服务器IP
远程访问
10、信任远程连接

vi /var/lib/pgsql/9.6/data/pg_hba.conf

修改如下内容,信任指定服务器连接
ip
这里我是用虚拟机做的测试,主机和虚拟机使用NAT上网方式,所以主机想要访问虚拟机只能通过虚拟机网关来访问,因此这里ip添加的是虚拟机的网关地址。当然实验性质可以随意一点,写192.168.133.0/24(整个网段)或者0.0.0.0/0(所有地址)都可以访问。如果是公司在阿里云上部署,则IP为公司IP,不是电脑上192.168.x.x,而是要打开百度/Google搜索IP返回的结果。例如:220.23.163.7,则可以写220.23.163.7/32。这样就只能公司内部去访问数据库了,安全性相对来说高一些。
10、重启postgre服务
CentOS 7

systemctl restart postgresql-9.6.service        

阿里云CentOS 6.5

service postgresql-9.6 restart

11、查看运行状态

systemctl status postgresql-9.6.service

status
12、使用Navicat for PostgreSQL远程连接测试
Navicat for PostgreSQL
至此,PostgreSQL安装完成。


参考资料:
centos6.5 安装postgresql9.4
Centos6.5/6.8 64位缺少防火墙配置文件及内部的相应配置
CentOS 7 安装PostgreSQL 9.6

0 0