中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CentOS/RHEL 7上PostgreSQL如何安裝配置

發布時間:2021-11-15 16:56:45 來源:億速云 閱讀:207 作者:小新 欄目:數據庫

這篇文章主要介紹了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;

查看Table
\dt

查看Sequence
\ds

查看View
\dv

查看Table Sequence  View
\d
 
執行sql腳本
\i test.sql
 
Sequence
查詢sequence(currval(), nextval())
select nextval('test_sequence');

更新sequence
alter sequence test_sequence restart with 42;
 
退出
\q
 
幫助
help
\?  for help with psql commands
\h  for help with SQL commands

備份與恢復

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$;

感謝你能夠認真閱讀完這篇文章,希望小編分享的“CentOS/RHEL 7上PostgreSQL如何安裝配置”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄冈市| 焦作市| 通州区| 常熟市| 宁海县| 吉林市| 沙河市| 肥乡县| 西昌市| 滁州市| 文山县| 凌源市| 恩平市| 偏关县| 凤凰县| 岐山县| 泉州市| 鹿邑县| 桑日县| 南投县| 铁岭市| 盘锦市| 辽阳市| 四平市| 大化| 和林格尔县| 公主岭市| 嘉兴市| 镇沅| 潼关县| 石渠县| 江油市| 井研县| 宁安市| 房产| 新安县| 镇赉县| 二连浩特市| 塔城市| 益阳市| 奎屯市|