一、下载离线安装包
我这里用的是9.6.10
二、下载gcc-c++和readline
三、安装
在根路径下创建data目录,作为我们得工作目录
1,gcc-c++环境检测
rpm -qa | grep gcc-c++
2,gcc-c++环境安装
将下载好的gcc-c++放到data目录下(最好所有的gcc文件放一个单独文件夹)
执行命令:rpm -Uvh *.rpm --nodeps --force
3,查看安装结果
gcc -v
g++ -v
4,安装postgresql
把postgresql安装包放到data目录下进行解压:
tar -zxvf postgresql-9.6.10.tar.gz
切换到解压目录下,执行安装命令:
./configure --prefix=/data/postgresql
报错:
这是缺少readline,执行命令查看是否存在:
rpm -qa | grep readline
实际上是存在的, 出现这种情况一般是缺少相关 devel 包,将我们之前下载的两个readline包 放到data下进行安装:注意先后顺序
rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm
安装完成后,再次切换到解压得postgresql目录下:
./configure --prefix=/data/postgresql
postgresql安装完成。
进行编译:make
注:编译时间会较长,请耐心等待。
make install
编译完成。
四、配置
root用户不能启动postgresql,所以需要创建一个普通用户来启动数据库
创建用户:useradd postgres
设置密码:passwd postgres
切换到已安装得postgresql路径下:
创建目录 data(数据库存储) 和 log(日志存储)
将postgresql的目录权限全部赋予给postgres用户
chown -R postgres:postgres /data/postgresql
配置环境变量:
执行命令:vim /etc/profile (i键进入编辑状态)
在最下面添加配置:
export PGDATA=/data/postgresql/data
export PGHOME=/data/postgresql
export PATH=$PGHOME/bin:$PATH
按ESC退出编辑,按:wq保存并退出。
更新配置:source /etc/profile
切换为 postgres 用户:su postgres
直接使用命令 initdb来完成数据库初始化操作
切换到postgresql下data目录下:
执行命令:vim pg_hba.conf
退出保存即可。
执行命令:vim postgresql.conf
执行命令:systemctl status firewalld.service
查看防火墙是否关闭
我这里是已经关闭了,如果是下图:
可以看见服务器防火墙处于开启状态,使用命令 systemctl stop firewalld.service 关闭防 火 墙。(ps:使用命令 systemctl disable firewalld.service ,可以停用防火墙开机自启)
切换到postgresql源码包的解压目录下;
cp contrib/start-scripts/linux /etc/init.d/postgresql
我这里出现了一个错误:
注意看:执行这个命令需要是root用户,切换成root用户执行即可;
执行命令:vim /etc/init.d/postgresql
赋予该文件执行权限:
chmod +x /etc/init.d/postgresql
设置服务开机自启:
chkconfig --add postgresql
启动数据库:
service postgresql start
切换postgres用户,使用psql进行登录
使用\password进行设置密码
使用\l 进行查看