首先咱們對PostgreSQL進行一個大體的介紹。html
PostgreSQL,一般簡稱爲Postgres,是一種開放源代碼的通用對象關係數據庫管理系統。它具備許多強大的功能,例如在線備份,時間點恢復,嵌套事務,SQL和JSON查詢,多版本併發控制(MVCC),異步複製等等。linux
本教程將引導您完成在Debian 10上安裝PostgreSQL數據庫服務器的步驟。咱們還將探討基本數據庫管理的基礎。sql
###首先,安裝PostgreSQLshell
安裝PostgreSQL,可從默認Debian存儲庫中得到的最新PostgreSQL版本,這裏以PostgreSQL 11.5版本爲例。數據庫
要在Debian服務器上安裝PostgreSQL,請以root用戶或具備sudo權限的用戶執行如下步驟:bash
一、更新APT包索引:服務器
sudo apt update
複製代碼
二、安裝PostgreSQL服務器和contrib軟件包,該軟件包爲PostgreSQL數據庫提供附加功能:網絡
sudo apt install postgresql postgresql-contrib
複製代碼
三、安裝完成後,PostgreSQL服務將啓動。要驗證安裝,請使用該psql
工具打印服務器版本:併發
sudo -u postgres psql -c "SELECT version();"
複製代碼
輸出相似以下:異步
PostgreSQL 11.5 (Debian 11.5-1+deb10u1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
複製代碼
psql
是一個交互式終端程序,可以讓您與PostgreSQL服務器進行交互。
PostgreSQL使用角色的概念來處理數據庫訪問權限。根據角色的設置方式,它能夠表明一個數據庫用戶或一組數據庫用戶。
PostgreSQL支持多種身份驗證方法。最經常使用的方法是:
pg_hba.conf
。scram-sha-256
md5
和password
(明文)PostgreSQL客戶端身份驗證在名爲的配置文件中定義pg_hba.conf
。對於本地鏈接,PostgreSQL設置爲使用對等身份驗證方法。
在安裝PostgreSQL時自動建立「 postgres」用戶。該用戶是PostgreSQL實例的超級用戶,它等效於MySQL根用戶。
要以「 postgres」身份登陸到PostgreSQL服務器,請切換到用戶 postgres並使用該psql
實用程序訪問PostgreSQL提示符:
sudo su - postgres
psql
複製代碼
在這裏,您能夠與PostgreSQL服務器進行交互。要退出PostgreSQL shell,請輸入:
\q
複製代碼
您可使用該sudo
命令訪問PostgreSQL提示符,而無需切換用戶:
sudo -u postgres psql
複製代碼
postgres
一般僅從本地主機使用該用戶。
該createuser
命令容許您從命令行建立新角色。只有超級用戶和具備CREATEROLE
特權的角色才能建立新角色。
在如下示例中,咱們將建立一個名爲的新角色kylo
,一個名爲的數據庫,kylodb
並授予該角色對該數據庫的特權。
一、首先,經過發出如下命令來建立角色:
sudo su - postgres -c "createuser linux265"
複製代碼
二、接下來,使用如下createdb
命令建立數據庫:
sudo su - postgres -c "createdb linux265db"
複製代碼
三、要向數據庫上的用戶授予權限,請鏈接到PostgreSQL shell:
sudo -u postgres psql
複製代碼
運行如下查詢:
grant all privileges on database linux265db to linux265;
複製代碼
默認狀況下,PostgreSQL服務器僅在本地接口上偵聽127.0.0.1
。
若是要從遠程位置鏈接到PostgreSQL服務器,則須要將服務器設置爲在公共接口上偵聽,並編輯配置以接受遠程鏈接。
打開配置文件,postgresql.conf
而後listen_addresses = '*'
在CONNECTIONS AND AUTHENTICATION
部分中添加。這指示服務器在全部網絡接口上進行偵聽。
sudo nano /etc/postgresql/11/main/postgresql.conf
複製代碼
修改以下內容:
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
複製代碼
保存文件並從新啓動PostgreSQL服務以使更改生效:
sudo service postgresql restart
複製代碼
使用ss
實用程序驗證更改:
ss -nlt | grep 5432
複製代碼
輸出相似以下內容:
LISTEN 0 128 0.0.0.0:5432 0.0.0.0:*
LISTEN 0 128 [::]:5432 [::]:*
複製代碼
輸出應顯示PostgreSQL 服務器在全部接口(0.0.0.0)上進行偵聽。
最後一步是經過編輯pg_hba.conf
文件將服務器配置爲接受遠程登陸。
如下是顯示不一樣用例的一些示例:
# TYPE DATABASE USER ADDRESS METHOD
# The user linux265 will be able to access all databases from all locations using an md5 password
host all linux265 0.0.0.0/0 md5
# The user linux265 will be able to access only the janedb from all locations using an md5 password
host linux265db linux265 0.0.0.0/0 md5
# The user linux265 will be able to access all databases from a trusted location (192.168.1.134) without a password
host all linux265 192.168.1.134 trust
複製代碼
本教程已經向您展現瞭如何在Debian 10上安裝和配置PostgreSQL。有關此主題的更多信息,請參閱PostgreSQL文檔。
若是您有任何問題或反饋,請隨時發表評論。 原文地址:如何在 Debian 10上安裝 PostgreSQL 數據庫