首先参照官方安装文档:http://www.postgresql.org/download/linux/redhat/
1. 检查PostgreSQL 是否已经安装---准备工作
rpm -qa | grep postgres 检查PostgreSQL 是否已经安装
rpm -qal | grep postgres 检查PostgreSQL 安装位置
若已经安装,则使用rpm -e 命令卸载
rpm -e postgresql94-contrib-9.4.4-1PGDG.rhel6.x86_64 postgresql94-server-9.4.4-1PGDG.rhel6.x86_64 卸载
rpm -e postgresql94-libs-9.4.4-1PGDG.rhel6.x86_64 postgresql94-9.4.4-1PGDG.rhel6.x86_64 卸载
注意卸载名字根据自己查到的已安装的版本来
2.使用yum库设置安装postgresql96版本,最好先创建用户组和用户
因为我的用途是用于api gateway kong的使用,而kong的官网要求是9.5以上的版本,所以我安装96的;
(1)新增postgres用户组:
groupadd postgres
(2)新增postgres用户并且设置这个用户属于上面创建的postgres用户组:
useradd -g postgres postgres
(3)修改postgres用户密码:passwd postgres(这里设置密码为postgres)
passwd postgres --修改postgres用户密码
(4)执行下载安装命令
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-centos96-9.6-3.noarch.rpm
yum search postgresql
找到对应的版本进行安装:
yum install postgresql96
yum install postgresql96-server
初始化数据库
service postgresql-9.6 initdb
启动postgresql
service postgresql-9.6 start
停止postgresql
service postgresql-9.6 stop
3.过程中遇到的一些异常处理---重点
(1)创建用户kong的时候 createuser kong -P
先找到pg_hba.conf修改配置文件
# Database administrative login by Unix domain socket
local all postgres trust
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.72.1/24 md5
# IPv6 local connections:
host all all ::1/128 md5
trust这个东西代码用名字就可以登录,所以设置为本机
IPv4里面,/24表示ip前三个数字相同的走这个md5密码验证规则
另外还需要修改监听位置,postgresql.conf里面加listen——address里面值改为*号
(2)修改postgres的密码
开玩笑,我的root角色居然还没有权限,---此处是我把角色权限定义弄混了
[root@localhost /]# chown -R postgres:postgres /var/lib/pgsql/9.6
[root@localhost /]# chown -R postgres:postgres /var/lib/pgsql/9.6/data
[root@localhost /]# sudo -u postgres psql
切换文件夹权限之后可以执行修改密码的操作了
修改OK
(3)为了给kong使用,我要去创建个kong用户出来,然后拷贝一下官方定义的数据结构过来
命令流程如下:
#远程导出表结构和数据:
pg_dump -h REMOTE_IP kong -U kong -p 5432 -f kong.dump
#远程导出表结构,不带数据
pg_dump -s -h REMOTE_IP kong -U kong -p 5432 -f kong.dump
导入本地数据库:
psql -h localhost kong -U kong -p 5432 -f kong.dump
那么问题又出现了,第一个命令不正确,默认为root但是我数据库压根没这个用户名,所以后面加上我已经有的群组名字-U postgres就可以了
导出表结构的第一条命令测试失败,如果非要这条命令那就去hosts里面加个映射咯,对应本地127.0.0.1即可
然后创建成功多了一些表~
ps:偶然间发现,如果先装DB,再装Kong,这个拉数据结构的命令可以不用跑,有对应的用户就可以了....