Debian 10安裝PostgreSQL 12的方法


添加PostgreSql官方倉儲

# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Update the package lists:
sudo apt-get update

# Install the latest version of PostgreSQL.
# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
sudo apt-get -y install postgresql

如果想安裝postgresql 12版本 

apt-get install postgresql-12

安裝PostgreSQL服務器和contrib軟件包,該軟件包為PostgreSQL數據庫提供附加功能:

sudo apt install postgresql postgresql-contrib

安裝完成后,PostgreSQL服務將啟動,要驗證安裝,請使用psql工具打印服務器版本

sudo -u postgres psql -c "SELECT version();"

輸出應類似於以下內容:

PostgreSQL 12.4 (Debian 12.4-1.pgdg100+1) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit

啟用對PostgreSQL服務器的遠程訪問

默認情況下,PostgreSQL服務器僅在本地接口127.0.0.1上偵聽。

如果要從遠程位置連接到PostgreSQL服務器,則需要將服務器設置為在公共接口上偵聽,並編輯配置以接受遠程連接。

1,打開配置文件postgresql.conf,並在“CONNECTIONS AND AUTHENTICATION”部分中添加listen_addresses = '*',這指示服務器在所有網絡接口上進行偵聽:

sudo nano /etc/postgresql/12/main/postgresql.conf

編輯為如下:

# CONNECTIONS AND AUTHENTICATION

# - Connection Settings -

listen_addresses = '*'     # what IP address(es) to listen on;

2,打開配置文件pg_hba.conf,將服務器配置為接受遠程登錄,找到“# IPv4 local connections:” 

host    all    all    192.168.1.210/32    trust

或者運行全部IP訪問

host    all    all    0.0.0.0/0    trust

這里默認是md5,需要設置密碼。如果不需要密碼連接,需要改為trust,默認安裝好后postgres用戶是沒有密碼的 可以設置密碼

sudo -u postgres psql

ALTER Role postgres WITH PASSWORD 'fofia123'; 注意命令后面又分號

如果有多個可以指定某個實例 

sudo -u postgres psql -p 5433

修改linux系統的postgres用戶的密碼(密碼與數據庫用戶postgres的密碼相同)

步驟一:刪除用戶postgres的密碼

sudo  passwd -d postgre

步驟二:設置用戶postgres的密碼

sudo -u postgres passwd
按照提示輸入新密碼

3,開放默認端口5432 如果安裝了ufw 使用一下命令開放端口

sudo ufw allow 5432

4,保存文件並重新啟動PostgreSQL服務以使更改生效:

sudo service postgresql restart

 

PostgreSQL角色和驗證方法

PostgreSQL使用角色的概念來處理數據庫訪問權限,根據角色的設置方式,它可以代表一個數據庫用戶或一組數據庫用戶。

PostgreSQL支持多種身份驗證方法,最常用的方法是:

1、Trust-只要滿足pg_hba.conf中定義的條件,角色就可以不使用密碼進行連接。

2、Password-角色可以通過提供密碼進行連接,密碼可以存儲為scram-sha-256 md5和密碼(明文)。

3、Ident-僅支持TCP/IP連接,它通過獲得客戶端的操作系統用戶名以及可選的用戶名映射來工作。

4、Peer-與Ident相同,但僅在本地連接上受支持。

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用戶。

創建PostgreSQL角色和數據庫

createuser命令允許你從命令行創建新角色,只有具有CREATEROLE特權的超級用戶和角色才能創建新角色。

在以下示例中,我們將創建一個名為kylo的新角色,一個名為kylodb的數據庫,並授予該角色對該數據庫的特權。

1、首先,通過以下命令來創建角色:

sudo su - postgres -c "createuser kylo"

2、接下來,使用createdb命令創建數據庫:

sudo su - postgres -c "createdb kylodb"

3、要向數據庫上的用戶授予權限,請連接到PostgreSQL shell:

sudo -u postgres psql

4、運行以下查詢:

grant all privileges on database kylodb to kylo;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM