关于postgresql的安装一过程中发现的异常处理

首先参照官方安装文档: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即可

然后创建成功多了一些表~

猜你喜欢

转载自blog.csdn.net/wuge507639721/article/details/81167261