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

報錯緣由:若是登陸時未指定鏈接的目標數據庫,那麼默認數據庫名稱與用戶名相同。

相關文章
相關標籤/搜索