① 下载 PostgreSQL地址:PostgreSQL: File Browser
② 下载依赖:centos-7-os-x86_64-Packages安装包下载_开源镜像站-阿里云
一共27个:
(如果觉得太慢可以下载我上传的:postgresql-13.0.tar.gz及离线安装所需依赖-Java文档类资源-CSDN下载)
把下载好的依赖以及安装包放到服务器,我这里是在/opt下创建了目录:/opt/postgreSQL/dependencies/gcc,
将下载好的gcc-c++放到/opt/postgreSQL/dependencies/gcc目录下(最好所有的gcc文件放一个单独文件夹),其余两个依赖包放到了/opt/postgreSQL/dependencies, PostgreSQL安装包放到了/opt/postgreSQL目录。
#1. 安装依赖
[root@-uat gcc]# rpm -Uvh *.rpm --nodeps --force
#查看安装结果
[root@-uat gcc]# gcc -v
[root@-uat gcc]# g++ -v
#安装readline包
[root@-uat dependencies]# rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
[root@-uat dependencies]# rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm#2. 安装PostgreSQL
#解压文件
[root@-uat postgreSQL]# tar -zxvf postgresql-13.0.tar.gz#切换到解压目录下,执行安装命令
[root@-uat postgresql-13.0]# ./configure --prefix=/opt/postgreSQL/postgresql-13.0#编译(注:编译时间会较长,请耐心等待。)
[root@-uat postgresql-13.0]# make
[root@-uat postgresql-13.0]# make install#3. 配置
#root用户不能启动postgresql,所以需要创建一个普通用户来启动数据库
#创建用户
[root@-uat postgresql-13.0]# useradd postgres
[root@-uat postgresql-13.0]# passwd postgres#切换到已安装得postgresql-13.0路径下, 创建目录 data(数据库存储) 和 log(日志存储)
[root@-uat postgresql-13.0]# mkdir data
[root@-uat postgresql-13.0]# mkdir log# 将postgresql-13.0的目录权限全部赋予给postgres用户
[root@-uat postgresql-13.0]# chown -R postgres:postgres /opt/postgreSQL/postgresql-13.0#4. 配置环境变量
[root@-uat postgresql-13.0]# vim /etc/profileexport PGDATA=/opt/postgreSQL/postgresql-13.0/data
export PGHOME=/opt/postgreSQL/postgresql-13.0
export PATH=$PGHOME/bin:$PATH# 更新配置:
[root@-uat postgresql-13.0]# source /etc/profile#切换为 postgres 用户
[root@-uat postgresql-13.0]# su postgres#直接使用命令 initdb 来完成数据库初始化操作
[postgres@-uat postgresql-13.0]$ initdb
#自定义开放访问的IP
#修改data目录下的pg_hba.conf文件
[postgres@-uat data]$ cd /opt/postgreSQL/postgresql-13.0/data
[postgres@-uat data]$ vim pg_hba.conf#其中0.0.0.0/0表示运行任意ip地址访问。若设置为 192.168.1.0/24 则表示允许来自ip为192.168.1.0 ~ 192.168.1.255之间的访问。
# IPv4 out connections:
host all all 0.0.0.0/0 md5
#添加主机ip和主机名
[postgres@-uat data]$ vim postgresql.conf
#切换到root用户,并到postgresql源码包的解压目录下(/opt/postgreSQL/postgresql-13.0)
[root@-uat postgresql-13.0]# cp contrib/start-scripts/linux /etc/init.d/postgresql
[root@szvmapmsp06-uat postgresql-13.0]# vim /etc/init.d/postgresqlprefix=/opt/postgreSQL/postgresql-13.0
PGDATA="/opt/postgreSQL/postgresql-13.0/data"
PGLOG="/opt/postgreSQL/postgresql-13.0/log/serverlog"
#赋予该文件执行权限
[root@-uat postgresql-13.0]# chmod +x /etc/init.d/postgresql#设置服务开机自启:
[root@-uat postgresql-13.0]# chkconfig --add postgresql#启动数据库:
[root@-uat postgresql-13.0]# service postgresql start
# 切换postgres用户,使用psql进行登录
[root@-uat postgresql-13.0]# su postgres
[postgres@-uat postgresql-13.0]$ psql
我这里报错了:
解决方案:将gp的lib目录添加到环境变量中( ~/.bashrc)。
[postgres@-uat postgresql-13.0]$ vim ~/.bashrc
#将gp的lib目录添加到环境变量中
export LD_LIBRARY_PATH=/opt/postgreSQL/postgresql-13.0/lib#刷新配置
[postgres@-uat postgresql-13.0]$ source ~/.bashrc#再重新登录下
[postgres@-uat postgresql-13.0]$ psql
现在可以了。
#设置密码:
postgres=# \password
#显示数据库:
postgres=# \l
至此,数据库安装完成。
#创建 sonar 用户,密码为 sonar
postgres=# create user sonar password 'sonar';
#赋予账号权限
postgres=# ALTER ROLE sonar SUPERUSER;
#创建数据库
postgres=# create database sonarDatabase;#使用sonar用户登录(-U:登录用户 -d:登录的数据库 -h:数据库IP -p:登录端口)
postgres-# psql -U sonar -d sonardatabase -h localhost -W
#查看数据库
postgres-# \l
#退出
postgres-# exit