postgresql9.5安装部署


1 postgresql安装

1.1 安装postgresql仓库

yum -y install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-3.noarch.rpmsql

1.2 安装客户端软件包

yum -y install postgresql95数据库

1.3 安装服务端软件包

yum -y install postgresql95-servervim

2 初始化并启动postgresql

2.1 初始化数据库

/usr/pgsql-9.5/bin/postgresql95-setup initdbcentos

2.2 启动postgresql

systemctl enable postgresql-9.5bash

systemctl start postgresql-9.5dom

postgresql默认端口为5432socket

passwd postgres   #设置postgres用户密码ide

2.3 修改配置文件

监放任何网段post

# vim /var/lib/pgsql/9.5/data/postgresql.confui

59 #listen_addresses = 'localhost'     # what IP address(es) to listen on;

60 listen_addresses = '*'     #监放任何网段地址

61                     # comma-separated list of addresses;

62                     # defaults to 'localhost'; use '*' for all

63                     # (change requires restart)

64 #port = 5432                # (change requires restart)

65 max_connections = 100           # (change requires restart)

66 #superuser_reserved_connections = 3 # (change requires restart)

容许远程主机登陆

vim /var/lib/pgsql/9.5/data/pg_hba.conf

77 # TYPE  DATABASE        USER            ADDRESS                 METHOD

78

79 host    all             all             0.0.0.0/0               md5  #此行为添加的

80 # "local" is for Unix domain socket connections only

81 local   all             all                                     peer

82 # IPv4 local connections:

83 host    all             all             127.0.0.1/32            ident

84 # IPv6 local connections:

85 host    all             all             ::1/128                 ident

86 # Allow replication connections from localhost, by a user with the

从新加载postgresql

systemctl reload postgresql-9.5

3 postgresql数据目录说明

3.1 默认目录

默认数据存放目录 /var/lib/pgsql/9.5/data/

3.2 修改数据目录

先建立目录

mkdir /home/yunwei/pgsql/data -p

改变属主

chown -R postgres.postgres /home/yunwei/pgsql/data

指定目录初始化数据

/usr/pgsql-9.5/bin/initdb -D /home/yunwei/pgsql/data/

修改systemctl启动文件

vim /usr/lib/systemd/system/postgresql-9.5.service

27 # Note: avoid inserting whitespace in these Environment= lines, or you may

28 # break postgresql-setup.

29

30 # Location of database directory

31 # Environment=PGDATA=/var/lib/pgsql/9.5/data/   #注释此行

32 Environment=PGDATA=/home/yunwei/pgsql/data   #新增此行

33 # Where to send early-startup messages from the server (before the logging

34 # options of postgresql.conf take effect)

35 # This is normally controlled by the global default set by systemd

36 # StandardOutput=syslog

systemctl daemon-reload

systemctl start postgresql-9.5   #须要重启生效

4 postgresql经常使用命令

# psql --version   查看版本号

4.1 登陆postgresql数据库

登陆postgres数据库,须要先切换到postgres用户下才能登陆

[root@wangning ~]# su - postgres

Last login: Thu Aug 30 10:44:48 CST 2018 on pts/0

-bash-4.2$ psql postgres   #postgres用户登陆数据库,postgres用户是安装是默认建立的,没有登陆密码

psql (9.5.14)

Type "help" for help.

postgres=# alter user postgres password '123456';   #修改postgres用户密码,这样就能够远程登陆了,本地登陆无需密码

postgres=# \l      #查看库列表,如下是安装后默认的库

postgres=# \list

10.png

postgres=# \du    #查看用户列表,bzh是我本身建立的

11.png

postgres=# \q     #退出数据库

4.2 建立用户和库表

4.2.1 建立用户

建立bzh用户,createdb是权限,还有其余权限,好比superusercreateuser等,createdb是最小的权限

postgres=# create user bzh createdb;

修改bzh的密码为123456

postgres=# alter user bzh password '123456';

4.2.2 建立库testdb

postgres=# create database testdb owner bzh;

testdb数据库的全部权限都赋予testdb

postgres=# grant all privileges on database testdb to bzh;

postgres=# \c testdb   #进入testdb库里

4.2.3 建立test

-bash-4.2$ psql -U bzh -h 10.0.0.14 -d testdb  #bzh用户登陆testdb

testdb=# \d       #显示当前库下的全部表

testdb=# create table test (no int,name text );           #建立test

testdb=# insert into test (no,name) values (1,'devops');    #插入数据

testdb=# select * from test;      #查询test表中全部数据

4.3 删除库和表

4.3.1 删除testdb

postgres=# drop database testdb;

4.4 数据库的导入和导出

4.4.1 导出数据

语法

pg_dump -h localhost -U postgres(用户名数据库名(缺省时同用户名)   >/data/dum.sql

pg_dump -h localhost -U postgres(用户名数据库名(缺省时同用户名)  -t table(表名) >/data/dum.sql

testdb库导出

[root@wangning ~]# pg_dump -h 10.0.0.14 -U bzh testdb >bzh.sql

指定端口号将tesdb库导出并压缩

[root@wangning ~]# pg_dump -h 10.0.0.14 -p 5432 -U bzh testdb|gzip >bzh.sql.gz

test表导出

[root@wangning ~]# pg_dump -h 10.0.0.14 -U bzh testdb -t test >test.sql

4.4.2 导入数据

语法

psql -U postgres(用户名数据库名(缺省时同用户名) < /data/dum.sql

bzh.sql导入testdb库中,testdb须要提早建好

[root@wangning ~]# psql -U bzh -h 10.0.0.14 testdb <bzh.sql

bzh.sql.gz导入testdb库中,testdb须要提早建好

[root@wangning wangning]# gunzip -c bzh.sql.gz |psql -U postgres -h 10.0.0.14 -p 5432 testdb

5 常见报错

5.1 psql: FATAL:  database "bzh" does not exist

12.png

报错缘由:若是登陆时未指定链接的目标数据库,那么默认数据库名称与用户名相同。