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.rpm

1.2 安装客户端软件包

yum -y install postgresql95

1.3 安装服务端软件包

yum -y install postgresql95-server

2 初始化并启动postgresql

2.1 初始化数据库

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

2.2 启动postgresql

systemctl enable postgresql-9.5

systemctl start postgresql-9.5

postgresql默认端口为5432

passwd postgres   #设置postgres用户密码

2.3 修改配置文件

监听任何网段

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

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

报错原因:如果登录时未指定连接的目标数据库,那么默认数据库名称与用户名相同。


猜你喜欢

转载自blog.51cto.com/wn2100/2239518