如何在CentOS 7上安裝PostgreSQL
PostgreSQL或Postgres是一個開放源代碼的通用對象關係數據庫管理系統,具有許多高級功能,使您可以創建複雜的Web應用程序。
在本教程中,我們將向您展示兩種不同的方法,說明如何在CentOS 7計算機上安裝PostgreSQL。 第一種方法將引導您完成從CentOS信息庫安裝PostgreSQL v9.2.23的必要步驟,而第二種方法將向您展示如何從官方PostgreSQL信息庫安裝最新版本的PostgreSQL。
如果您的應用程序不需要最新版本,我們建議使用第一種方法並從CentOS存儲庫中安裝PostgreSQL。
我們還將探討PostgreSQL數據庫管理的基礎。
先決條件
在繼續本教程之前,請確保您以具有sudo特權的用戶身份登錄。
從CentOS儲存庫安裝PostgreSQL#
在撰寫本文時,可從CentOS存儲庫中獲得的PostgreSQL的最新版本是PostgreSQL 9.2.23。
要在CentOS服務器上安裝PostgreSQL,請執行以下步驟:
安裝PostgreSQL
要安裝PostgreSQL服務器以及PostgreSQL contrib軟件包,該軟件包為PostgreSQL數據庫提供了幾個附加功能,只需鍵入:
sudo yum install postgresql-server postgresql-contrib
初始化數據庫
使用以下命令初始化PostgreSQL數據庫:
sudo postgresql-setup initdb
Initializing database ... OK
啟動PostgreSQL
要啟動PostgreSQL服務並使它能夠在啟動時啟動,只需鍵入:
sudo systemctl start postgresql
sudo systemctl enable postgresql
驗證PostgreSQL安裝
為了驗證安裝,我們將嘗試使用來連接到PostgreSQL數據庫服務器。
psql
工具並打印服務器版本:sudo -u postgres psql -c "SELECT version();"
PostgreSQL 9.2.23 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16), 64-bit (1 row)
Psql是一個交互式命令行實用程序,可讓我們與PostgreSQL服務器進行交互。
從PostgreSQL存儲庫安裝PostgreSQL#
在撰寫本文時,可從官方PostgreSQL存儲庫中獲得的PostgreSQL的最新版本是PostgreSQL版本10.4。 在繼續下一步之前,您應該訪問PostgreSQL Yum Repository頁面,並檢查是否有可用的新版本。
請按照以下步驟在CentOS服務器上安裝最新的PostgreSQL版本:
啟用PostgreSQL倉庫
要啟用PostgreSQL存儲庫,只需安裝存儲庫
rpm
文件:sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
安裝PostgreSQL
啟用存儲庫後,請使用以下命令安裝PostgreSQL服務器和PostgreSQL contrib軟件包:
sudo yum install postgresql10-server postgresql10-contrib
初始化數據庫
要初始化PostgreSQL數據庫類型:
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Initializing database ... OK
啟動PostgreSQL
要啟動PostgreSQL服務並使它能夠在啟動時啟動:
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
驗證PostgreSQL安裝
為了驗證安裝,我們將嘗試使用來連接到PostgreSQL數據庫服務器。
psql
工具並打印服務器版本:sudo -u postgres /usr/pgsql-10/bin/psql -c "SELECT version();"
PostgreSQL 10.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit (1 row)
PostgreSQL角色和身份驗證方法
PostgreSQL中的數據庫訪問權限是通過角色的概念來處理的。 角色可以代表一個數據庫用戶或一組數據庫用戶。
PostgreSQL支持多種身份驗證方法。 最常用的方法是:
- 信任-使用此方法,角色可以在沒有密碼的情況下進行連接,只要
pg_hba.conf
被滿足。 - 密碼-角色可以通過提供密碼進行連接。 密碼可以存儲為
scram-sha-256
md5
和password
(明文)。 - 標識-僅在TCP / IP連接上支持此方法。 它通過獲取客戶端的操作系統用戶名以及可選的用戶名映射來工作。
- 對等-與Ident相同,但僅在本地連接上受支持。
PostgreSQL客戶端身份驗證在名為的配置文件中定義 pg_hba.conf
。 默認情況下,對於本地連接,PostgreSQL設置為使用對等身份驗證方法。
的 postgres
用戶在安裝PostgreSQL時自動創建。 該用戶是PostgreSQL實例的超級用戶,它等效於MySQL根用戶。
要首先以postgres用戶身份登錄PostgreSQL服務器,您需要切換到用戶postgres,然後使用來訪問PostgreSQL提示符。 psql
效用:
sudo su - postgres
psql
從這裡,您可以與PostgreSQL實例進行交互。 要退出PostgreSQL shell,請輸入:
q
您也可以訪問PostgreSQL提示符,而無需使用 sudo
命令:
sudo -u postgres psql
的 postgres
通常僅從本地主機使用該用戶,建議不要為此用戶設置密碼。
如果您是從官方PostgreSQL存儲庫安裝的PostgreSQL版本10,則需要使用完整路徑到 psql
二進制是 /usr/pgsql-10/bin/psql
。
創建PostgreSQL角色和數據庫
只有超級用戶和角色 CREATEROLE
特權可以創建新角色。
在下面的示例中,我們將創建一個名為 john
一個名為 johndb
並授予數據庫特權。
連接到PostgreSQL Shell
sudo -u postgres psql
創建一個新的PostgreSQL角色
以下命令將創建一個名為john的新角色:
create role john;
創建一個新的PostgreSQL數據庫
使用以下命令創建一個新的名為johndb的數據庫
createdb
命令:create database johndb;
授予特權
授予權限
john
用戶在上一步中創建的數據庫上運行以下查詢:grant all privileges on database johndb to john;
啟用對PostgreSQL服務器的遠程訪問
默認情況下,PostgreSQL服務器僅在本地接口上偵聽 127.0.0.1
。 要啟用對PostgreSQL服務器的遠程訪問,請打開配置文件 postgresql.conf
並添加 listen_addresses="*"
在裡面 CONNECTIONS AND AUTHENTICATION
部分。
sudo vim /var/lib/pgsql/data/postgresql.conf
如果您正在運行PostgreSQL版本10,則文件的路徑為 /var/lib/pgsql/10/data/postgresql.conf
./var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses="*" # what IP address(es) to listen on;
保存文件並使用以下命令重新啟動PostgreSQL服務:
sudo systemctl restart postgresql
如果您正在運行PostgreSQL版本10,請使用以下命令重新啟動PostgreSQL服務: systemctl restart postgresql-10
。
使用驗證更改 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
文件。
以下是一些顯示不同用例的示例:
/var/lib/pgsql/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# The user jane will be able to access all databases from all locations using a md5 password
host all jane 0.0.0.0/0 md5
# The user jane will be able to access only the janedb from all locations using a md5 password
host janedb jane 0.0.0.0/0 md5
# The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password
host all jane 192.168.1.134 trust
如果您正在運行PostgreSQL版本10,則文件的完整路徑為 /var/lib/pgsql/10/data/pg_hba.conf
。
結論#
您已經了解了如何在CentOS 7服務器上安裝和配置PostgreSQL。
有關該主題的更多信息,請查閱PostgreSQL文檔。
如有任何疑問,請在下面發表評論。
centos postgresql數據庫