系统 : CentOS 6.9 x64 mini
postgresql版本 : postgresql 9.5.7
安装目录 : /www/server/postgresql
懒人命令 保存为 .sh 并设置 执行权限 即可. 经过实际测试,
如果需要远程连接postgresql 则需要修改 pg_hba.conf
echo 'host all all 192.168.1.0/24 trust' >> /www/server/postgresql/data/pg_hba.conf
#!/bin/sh
# postgresql Install For CentOS
yum -y install gcc make readline zlib readline-devel zlib-devel
groupadd postgres
useradd -g postgres -d /www/server/postgresql -m postgres
mkdir -p /www/server/postgresql/data
mkdir -p /www/server/postgresql/init.d/#解压并编译安装
tar zxvf postgresql-9.5.7.tar.gz
cd postgresql-9.5.7
./configure --prefix=/www/server/postgresql
make && make install# 设置相关目录权限
chown -R postgres:postgres /www/server/postgresql/
chown -R postgres:postgres /www/server/postgresql/data/
chmod -R 0700 /www/server/postgresql/data/# 添加postgresql系统环境变量
echo "export PATH=/www/server/postgresql/bin:$PATH">> /etc/profile
source /etc/profile# 复制postgresql服务脚本并创建服务链接及权限
cp contrib/start-scripts/linux /www/server/postgresql/init.d/postgresql
ln -sf /www/server/postgresql/init.d/postgresql /etc/init.d/postgresql
chmod 755 /etc/init.d/postgresql
chkconfig --add postgresql
chkconfig postgresql on# 切换到用户postgres初始化数据库
su - postgres -c "/www/server/postgresql/bin/initdb -D /www/server/postgresql/data/ --encoding=UTF8"
su - postgres -c "/www/server/postgresql/bin/pg_ctl -D /www/server/postgresql/data/ -l logfile start"# 修改postgresql监控地址
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" /www/server/postgresql/data/postgresql.conf# 修改postgresql启动服务脚本中的路径
sed -i "s/prefix=\/usr\/local\/pgsql/prefix=\/www\/server\/postgresql/g" /www/server/postgresql/init.d/postgresql
sed -i "s/usr\/local\/pgsql\/data/www\/server\/postgresql\/data/g" /www/server/postgresql/init.d/postgresql
#在防火墙种开放postgresql的5432端口
iptables -I INPUT -p tcp --dport 5432 -j ACCEPT
service iptables save
service iptables restart
service iptables status