CentOS/RHEL 7上PostgreSQL的安装配置与基本使用

安装PostgreSQL 9.6为例:?

安装

Install the repository RPM
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm

Install the client packages
yum install postgresql96

Install the server packages
yum install postgresql96-server

Initialize the database and enable automatic start
/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl enable postgresql-9.6
systemctl start postgresql-9.6?

配置

编辑/var/lib/pgsql/9.6/data/postgresql.conf,修改listen_addresses,监听所有地址:

listen_addresses = ‘*‘

编辑/var/lib/pgsql/9.6/data/pg_hba.conf,修改认证方式:

# "local" is for Unix domain socket connections only
local?? all???????????? all????????????????????????????????????         trust
# IPv4 local connections:
host??? all???????????? all???????????? 127.0.0.1/32??????????? ident
host??? all???????????? all???????????? 0.0.0.0/0????????????????? md5

重启PostgreSQL
systemctl restart postgresql-9.6?

认证方式

认证方式支持"trust", "reject", "md5", "password", "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" , "cert"。

  • trust? 任何人都可以访问数据库,需要指定数据库用户名。如上,本地可以使用psql -U postgres连接数据库(当未指定数据库用户名时,默认为root)。
  • password? 密码认证,发送明文密码
  • md5? 密码认证,发送经MD5加密的密码,假如数据库服务器IP是10.188.13.29,则可以这样访问:psql -h 10.188.13.29 -U postgres,回车后会提示输入密码。
  • ident? 从ident server获取客户端操作系统的用户名,当与数据库用户名匹配时则可访问。当ident配置在local连接时,将使用peer替代。存在安全隐患,仅适用于封闭网络,不建议使用。
  • peer? 从kernel获取客户端操作系统的用户名,当与数据库用户名匹配时则可访问,仅用于local连接。如local配置为peer时,可以这样访问psql -U postgres
    当操作系统用户名与数据库用户名不一致时可以在文件pg_ident.conf中配置map关系,如下:
    # MAPNAME?????? SYSTEM-USERNAME???????? PG-USERNAME
    omicron?????????????   root?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???  postgres

    然后在pg_hba.conf中配置使用map:

    local?? all???????????? all??????????????????????????????????? ? ? ? ?? peer map=omicron
    host??? all???????????? all???????????? 127.0.0.1/32??????????? ident map=omicron

    PSQL

    连接PostgreSQL
    psql -U postgres

更多参数可以查看帮助psql --help
?
刷新配置
修改配置文件后,可执行以下命令刷新配置:
select pg_reload_conf();
?
更改密码
ALTER USER postgres WITH PASSWORD ‘postgres‘;
?
查看用户
select * from pg_shadow;
?
查看data文件夹所在目录
show data_directory;
?
创建用户
CREATE USER test WITH PASSWORD ‘test‘;
ALTER USER test WITH SUPERUSER;
?
创建SCHEMA
CREATE SCHEMA test;
ALTER SCHEMA test OWNER TO test;
?
查看SCHEMA
\dn
?
设置Search Path
SET search_path TO test;
?
执行sql脚本
\i test.sql
?
Sequence
查询sequence(currval(), nextval())
select nextval(‘test_sequence‘);

更新sequence
alter sequence test_sequence restart with 42;
?
退出
\q
?
帮助
help
\?
\h
?

备份与恢复

pg_dump -h host1?-U postgres [-n schema]?dbname > outfile
psql -U postgres dbname < infile
?
也可直接备份data目录
tar -cf backup.tar /usr/local/pgsql/data

存储过程

清空所有表数据的一个小存储过程(schema名称为test):

--?FUNCTION:?test.truncatealltable()??
??
--?DROP?FUNCTION?test.truncatealltable();??
??
CREATE?OR?REPLACE?FUNCTION?test.truncatealltable()??
????RETURNS?text??
????LANGUAGE?‘plpgsql‘??
??
AS?$BODY$??
??
DECLARE??
????cur_all_tables?CURSOR?FOR??
??????select?relname?from?pg_class??
??????where?relnamespace?=?(select?oid?from?pg_namespace?where?nspname?=?‘test‘)??
????????and?relkind?=?‘r‘?order?by?relname;??
????truncate_sql?CHARACTER?VARYING(100);??
?????
BEGIN??????
????FOR?record?IN?cur_all_tables??
????LOOP?????????????
????????truncate_sql?:=?concat(‘truncate?table?test.‘,?record.relname,?‘?cascade‘);??
????????EXECUTE?truncate_sql;??????????
????END?LOOP;??
??
????return?‘success‘;??
END??
??
$BODY$;??

PostgreSQL

原文地址:http://blog.51cto.com/7308310/2086943

时间: 2024-10-07 10:00:23

CentOS/RHEL 7上PostgreSQL的安装配置与基本使用的相关文章

RabbitMQ在CentOS上的简单安装配置

安装 1.依赖Erlang,yum install erlang安装之 2.去官网下载Fedora/RHEL的rpm包,rpm -ivh rabbitmq-server-*.noarch.rpm 安装之 配置 1.启用Web管理页面:rabbitmq-plugins enable rabbitmq_management 2.启动RabbitMQ:service rabbitmq-server start 3.添加防火墙策略:允许5672(rabbitmq默认端口)和15672(Web管理端口)

Let&#39;s Encrypt: 为CentOS/RHEL 7下的nginx安装https支持-具体案例

环境说明: centos 7 nginx 1.10.2 前期准备 软件安装 yum install -y epel-release yum install -y certbot 创建目录及链接 方法1:在网站根目录下创建一个.well-known的目录 方法2: mkdir -p /usr/local/nginx/cert/.well-known ln -s /usr/local/nginx/cert/.well-known /data/www/example.com/.well-known l

CentOS 6.5系统中RPM安装配置MySQL数据库

一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内, 这样就增加了速度并提高了灵活性.MySQL的SQL语言是用于访问数据库的最常用标准化语言.MySQL软件采用了双授权政策(本词条"授权政策"), 它分为社区版和商业版,由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作

centos 6.3上vnc远程桌面配置

vncserver基本的配置过程: 1.安装软件: #yum install tigervnc tigervnc-server -y 2.启动vnc服务 #vncserver You will require a password to access your desktops. Password: Verify: 这里提示输入密码,这个密码是通过vnc远程登录的密码,与系统本身的密码没有关系,然后输入确认密码 3.修改配置文件/etc/sysconfig/vncserver #VNCSERVE

CentOS 6.5+Zabbix2.0.6安装配置一. Zabbix安装1.1安装LAMP环境及依赖包

今天公司要我们安装zabbix,因为第一次安装所有遇到了很多问题都解决了,也自己写了脚本,后面会提到, 安装过程中遇到的问题我也截图出来,按我步骤安装下来,应该都没问题的.后续会分享下zabbix的使用更加详细说明文档. 现在版本换的快.不过我还是用2.0.6   这个可以用在2.2.0以上都没问题,亲自测试了. CentOS 6.5+Zabbix2.0.6安装配置 一. Zabbix安装 1.LAMP环境 #yum install mysql-server httpd php 这个需要安装下,

Linux(CentOS 7.0)下使用yum安装配置和使用svn.

Linux(CentOS 7.0)下使用yum安装配置和使用svn. 转载就标明原地址:  http://blog.csdn.net/u010587274/article/details/51015291 个人微信公众号:tanzi_888 (潭子技术圈) 一  安装说明 系统环境:CentOS-7.0安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件 笔者用户:root 二 检查已安装版本 #检查是否安装了低版本的SVN[[email prot

Linux——CentOS 6.3下PostgreSQL 的安装与配置

一.简介 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统.有些特性甚至连商业数据库 都不具备.这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户. 二.系统环境 系统平台:CentOS release 6.3 (Final) PostgreSQL 版本:PostgreSQL 9.2.4 防火墙已关闭/iptables: Firewall is not runn

CentOS 6.3下PostgreSQL 的安装与配置

一.简介 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统.有些特性甚至连商业数据库都不具备.这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户. 二.系统环境 系统平台:CentOS release 6.3 (Final) PostgreSQL 版本:PostgreSQL 9.2.4 防火墙已关闭/iptables: Firewall is not runni

CentOS 6.9中Telnet的安装配置

Telnet:TCP/IP协议中的一员,是Internet远程登录服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.要开始一个Telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法,监听TCP的23号端口. xinetd:新一代的网络超级守护进程,经常用来管理多种轻量级的Internet服务.xinetd提供类似于inetd+tcp_wrapper的功能,但它更强大更安全.xinetd能够同时监听多个指定的端口,在接受用户请