大連企業(yè)網(wǎng)站設計欣賞如何讓百度收錄網(wǎng)站
環(huán)境:
Centos7安裝PostgreSQL_14版本數(shù)據(jù)庫;
打開官方網(wǎng)站:PostgreSQL: Linux downloads (Red Hat family)
一、 版本選擇
復制、粘貼并運行如下腳本:
二、安裝步驟
這些命令是在 CentOS 7.x 系統(tǒng)上安裝和配置 PostgreSQL 14 的步驟:
①這個命令將下載并安裝 PostgreSQL 官方的 YUM 存儲庫,以便從中獲取 PostgreSQL 相關的軟件包。
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
?
②?這個命令用于安裝 PostgreSQL 14 服務器軟件包。它會自動解決依賴關系并安裝必要的組件。
sudo yum install -y postgresql14-server
③這個命令將初始化 PostgreSQL 14 數(shù)據(jù)庫集群。它會創(chuàng)建數(shù)據(jù)庫和相關的文件結構,并設置默認的用戶和權限等信息。
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
?
④這個命令將設置 PostgreSQL 14 在系統(tǒng)啟動時自動啟動。這樣,在系統(tǒng)重啟后,PostgreSQL 14 將自動啟動。
sudo systemctl enable postgresql-14
⑤這個命令將啟動 PostgreSQL 14 服務器。你可以使用這個命令來手動啟動 PostgreSQL 14,或者使用其他相應的命令(如 stop
、restart
)來控制 PostgreSQL 14 服務器的運行狀態(tài)。?
sudo systemctl start postgresql-14
⑥驗證 PostgreSQL 14 是否成功安裝和運行,這個命令會顯示 PostgreSQL 14 服務器的狀態(tài)信息。如果服務器正在運行,你將看到類似 "active (running)" 的輸出。
sudo systemctl status postgresql-14
提示:
在虛擬機的 CentOS 7 中,可以使用以下方法將命令從主機系統(tǒng)粘貼到虛擬機中:
- 1. 使用終端工具:打開虛擬機中的終端(如 GNOME 終端、Konsole 等),右鍵單擊并選擇 "Paste" 或按下 `Ctrl+Shift+V` 鍵盤快捷鍵來粘貼命令。
- 2. 使用 SSH 連接:如果你是通過 SSH 連接到虛擬機,你可以在 SSH 客戶端中直接使用命令行復制和粘貼的功能。例如,使用 PuTTY 或 OpenSSH 連接到虛擬機,在 SSH 客戶端的窗口中,右鍵單擊即可粘貼命令。
- 3. 使用共享剪貼板:某些虛擬化軟件(如 VirtualBox、VMware)提供了共享剪貼板功能,允許你在主機和虛擬機之間共享剪貼板內(nèi)容。確保在虛擬化軟件的設置中啟用了此功能,并使用相應的快捷鍵將命令從主機粘貼到虛擬機中。
無論選擇哪種方法,請確保在粘貼命令之前,終端處于準備接收輸入的狀態(tài),例如等待命令提示符。這樣,粘貼的命令才能正確執(zhí)行。
請記住,在虛擬機中運行命令時要謹慎,確保你理解命令的作用及其對系統(tǒng)的影響。
同時也可以使用 Xshell 連接到 CentOS 7 的虛擬機,并在其中安裝和配置 PostgreSQL 14。
三、切換用戶
切換到postgres用戶
su - postgres
-bash-4.2$ psql:
這個命令是用于啟動 PostgreSQL 的交互式命令行工具,可以與 PostgreSQL 數(shù)據(jù)庫進行交互和執(zhí)行 SQL 查詢。
輸入?psql?
-bash-4.2$ psql
正常情況下,當運行 psql
命令時,它會連接到本地默認的 PostgreSQL 服務器,并進入一個新的交互式會話。?如果你已經(jīng)成功安裝和配置了 PostgreSQL,并且正在使用默認的設置,那么你應該能夠看到如下所示的輸出:?
?
在提示符 postgres=#
下,可以輸入 SQL 命令、執(zhí)行查詢和管理數(shù)據(jù)庫等操作。?
修改系統(tǒng)用戶密碼:
ALTER USER postgres WITH PASSWORD 'postgres';
如果要從 `psql` 終端退出,有幾種方法可以嘗試:
1. 使用鍵盤組合鍵:按下 `Ctrl + D` 或輸入 `\q` 然后按下回車鍵。這將關閉 `psql` 終端并退出到原始命令行提示符。
2. 使用 SQL 命令:在 `psql` 終端中,輸入 `\q` 并按下回車鍵即可退出。
3. 使用系統(tǒng)終端命令:如果你發(fā)現(xiàn)無法使用 `psql` 終端的鍵盤組合鍵或命令,可以嘗試以下操作:
①?- 按下 `Ctrl + C` 中斷當前操作(如果有)。?
② - 輸入 `\!` 并按下回車鍵,以使 `psql` 終端進入外殼模式。?
③- 在外殼模式下,輸入 `exit` 或 `logout` 并按下回車鍵來退出 `psql` 終端。
④- 如果以上方法仍然不起作用,可以直接關閉終端窗口或使用操作系統(tǒng)提供的其他方法來結束 `psql` 終端。
四、修改配置
要修改配置文件,需要以具有足夠權限的用戶身份執(zhí)行操作。在 CentOS 7 上,默認情況下,PostgreSQL 數(shù)據(jù)庫的數(shù)據(jù)目錄的所有者和組都是 postgres
用戶。因此,需要使用 root
或具有適當權限的用戶登錄到系統(tǒng),并以 postgres
用戶的身份來編輯 postgresql.conf
文件。
4.1.修改postgresql.conf
`postgresql.conf` 是 PostgreSQL 數(shù)據(jù)庫的主要配置文件,其中包含許多不同的配置選項。以下是一些常見的 `postgresql.conf` 配置選項及其功能的示例:
- 1. `listen_addresses`:指定 PostgreSQL 服務器監(jiān)聽的 IP 地址。默認情況下,它設置為 `'localhost'`,僅允許本地連接。你可以將其修改為適當?shù)?IP 地址以允許遠程連接。
- 2. `port`:指定 PostgreSQL 服務器監(jiān)聽的端口號。默認值為 `5432`,通常無需更改。如果需要使用其他端口,請在此處進行修改。
- 3. `max_connections`:指定 PostgreSQL 允許的最大并發(fā)連接數(shù)。默認值為 `100`。根據(jù)系統(tǒng)資源和需求,你可以增加或減少此值。
- 4. `shared_buffers`:指定用于緩存數(shù)據(jù)頁的共享內(nèi)存大小。默認值取決于系統(tǒng),但通常為 `128MB`。根據(jù)系統(tǒng)資源和工作負載,可以調(diào)整此值以提高性能。
- 5. `work_mem`:指定每個排序操作或哈希表的內(nèi)存量。默認值為 `4MB`。根據(jù)查詢的復雜性和系統(tǒng)資源,你可以增加或減少此值。
- 6. `effective_cache_size`:指定 PostgreSQL 估計系統(tǒng)可用的磁盤緩存大小。默認值為空,表示自動檢測。你可以手動設置此值以更好地優(yōu)化查詢性能。
- 7. `log_timezone` 和 `timezone`:分別指定日志記錄時使用的時區(qū)和數(shù)據(jù)庫服務器的時區(qū)。
- 8. `logging_collector`:啟用或禁用日志收集器。當啟用時,PostgreSQL 將日志信息寫入到日志文件中,便于故障排除和監(jiān)視。
這里只是 `postgresql.conf` 中的一小部分配置選項示例。該文件還包含其他許多選項,用于配置各種數(shù)據(jù)庫行為、性能參數(shù)、安全性選項等。
注意:
對于任何更改,你都應該謹慎,并確保了解其影響和可能的后果。在修改 `postgresql.conf` 之前,建議先備份原始配置文件,并參考 PostgreSQL 的官方文檔以獲取更詳細的說明和指導。
4.1.1操作步驟?
①以?root
?用戶登錄到虛擬機或系統(tǒng)中。
②切換到?postgres
?用戶:運行以下命令:
su - postgres
③進入 PostgreSQL 數(shù)據(jù)目錄:運行以下命令:?
cd /var/lib/pgsql/14/data/
④使用 vim 編輯器打開?postgresql.conf
?文件:運行以下命令:?
vim postgresql.conf
⑤在 Vim 編輯器中,按下?i
?進入插入模式,對文件進行修改。
⑥完成修改后,按下?Esc
?鍵退出插入模式。
⑦輸入?:wq
?并按下回車鍵保存修改并退出 Vim 編輯器。
通過以上步驟,你將使用 postgres
用戶的身份編輯 postgresql.conf
文件,并確保保存了你的修改。請注意,這是一種常見的方法,但如果你的設置和權限不同,可能會有所變化。根據(jù)你的環(huán)境和配置,你可能需要相應地調(diào)整上述步驟。
提示:
如果在你的系統(tǒng)上未找到
vim
命令,可能是因為你的系統(tǒng)中沒有安裝 Vim 編輯器。在 CentOS 7 上,默認情況下,vim
命令未預裝。?
假如你的vim
命令未安裝,可以嘗試以下方法來編輯 postgresql.conf
文件:
①使用其他文本編輯器:
嘗試使用其他可用的文本編輯器,如 nano
或 vi
。這些編輯器通常在大多數(shù) Linux 發(fā)行版中都預裝了。你可以嘗試運行以下命令:?
nano /var/lib/pgsql/14/data/postgresql.conf
或
vi /var/lib/pgsql/14/data/postgresql.conf
這樣就可以?nano
或 vi
編輯器打開 postgresql.conf
文件。?
②安裝 Vim 編輯器:
如果你希望使用 Vim 編輯器,你可以嘗試安裝它。在 CentOS 7 上,你可以使用以下命令進行安裝:
sudo yum install vim-enhanced
?
最后安裝完成:?
安裝完成后,你可以再次嘗試使用
vim
命令打開 postgresql.conf
文件。?
開啟遠程訪問,將listen_address 修改為 * ,端口號可改可不改:
將 PostgreSQL 的 `listen_address` 配置修改為 `*` 意味著服務器將監(jiān)聽所有可用的網(wǎng)絡接口(IP 地址)。這樣配置可以使 PostgreSQL 服務器對來自任何網(wǎng)絡接口的連接請求進行處理。
通常情況下,PostgreSQL 的 `listen_address` 默認設置為 `localhost` 或 `127.0.0.1`,只允許本地連接。這是出于安全性考慮,以防止未經(jīng)授權的遠程連接。但如果你希望從外部網(wǎng)絡連接到 PostgreSQL 服務器,就需要將 `listen_address` 修改為 `*`,以允許任意 IP 地址的連接請求。
注意:
將 `listen_address` 設置為 `*` 可能會增加一些安全風險,因為它打開了服務器對所有網(wǎng)絡接口的監(jiān)聽。建議僅在必要時才采取此操作,并確保采取適當?shù)陌踩胧?#xff0c;例如使用防火墻、限制訪問和強密碼等。
在更改 `listen_address` 配置之前,請務必評估潛在的安全影響,并確保已經(jīng)實施了適當?shù)陌踩胧﹣肀Wo PostgreSQL 服務器和數(shù)據(jù)。
?如果你在編輯 postgresql.conf
文件時找不到 listen_address
配置選項,這可能是因為實際配置文件中沒有這個選項或該選項位于其他部分。
在 PostgreSQL 的默認安裝中,listen_addresses
是 postgresql.conf
中的一個常見配置選項,用于指定服務器監(jiān)聽的 IP 地址。但并非所有的 postgresql.conf
文件都會包含此選項。
要添加或修改 listen_addresses
選項,請按照以下步驟進行操作:
①打開 postgresql.conf
文件:
vim postgresql.conf
②在 Vim 編輯器中搜索 listen_addresses
。按下 /
鍵然后輸入 listen_addresses
進行搜索。
③如果找到了 listen_addresses
配置選項,請確保其前面沒有被注釋掉(沒有以 #
開頭)。如果被注釋掉了,請將注釋符號 #
刪除,并在需要的地方設置適當?shù)?IP 地址。
④如果未找到 listen_addresses
配置選項,你可以手動添加它。在文件的末尾添加以下行:
listen_addresses = 'your_ip_address'
?將 'your_ip_address'
替換為你想要 PostgreSQL 服務器監(jiān)聽的實際 IP 地址。
?⑤保存文件并退出 Vim 編輯器:在命令模式下按下 Esc
鍵,然后輸入 :wq
并按下回車鍵。
4.2.修改pg_hba.conf?
在這個文件中,你可以配置 PostgreSQL 服務器的客戶端認證規(guī)則。當你運行如下命令后,Vim 編輯器將打開 pg_hba.conf
文件,并顯示其內(nèi)容供你編輯。你可以使用 Vim 的編輯命令對文件進行修改,例如添加或更改認證規(guī)則、控制客戶端訪問權限等。
vim /var/lib/pgsql/14/data/pg_hba.conf
在文件末尾增加如下配置:
host all all 0.0.0.0/0 scram-sha-256
在 pg_hba.conf
文件中,添加一條身份驗證規(guī)則。這條規(guī)則的含義是允許來自任何 IP 地址的所有用戶使用 scram-sha-256 認證方法連接到 PostgreSQL 14 服務器。?
其中各字段的含義為:
host
:規(guī)則類型,表示基于主機的認證規(guī)則。all
:數(shù)據(jù)庫名(或用戶名),表示適用于所有數(shù)據(jù)庫和所有用戶。all
:認證條件,表示適用于所有用戶。0.0.0.0/0
:地址范圍,表示接受來自任意 IP 地址的連接請求。scram-sha-256
:認證方法,表示使用 scram-sha-256 方法進行身份驗證。
這個設置將允許任何 IP 地址的用戶使用 scram-sha-256 認證方法連接到 PostgreSQL 14 服務器。
注意:
使用
0.0.0.0/0
范圍的設置可能存在安全風險,因為它允許任意 IP 地址的連接。在生產(chǎn)環(huán)境中,請謹慎選擇適當?shù)牡刂贩秶⑹褂酶踩恼J證方法。
完成修改后,保存并退出 pg_hba.conf
文件。然后重新加載或重啟 PostgreSQL 14 服務,使新的身份驗證規(guī)則生效。重啟服務:
sudo systemctl restart postgresql-14
這個時候如果你還想用 su - postgres 這種方式進入命令行模式可能是不能進入的,可以嘗試使用如下命令:
psql -U postgres -h 127.0.0.1 --port 5432
在執(zhí)行該命令后,你將被提示輸入密碼以進行身份驗證。輸入正確的密碼后,psql 將連接到 PostgreSQL 14 數(shù)據(jù)庫,并顯示類似以下的輸出:
psql (版本號)
輸入 "help" 來獲取幫助信息。
確認連接成功后,你可以開始在 psql 終端中執(zhí)行 SQL 查詢和命令。例如,你可以使用 \l
命令查看當前數(shù)據(jù)庫的列表,使用 \dt
查看當前數(shù)據(jù)庫中的所有表等。
4.2.1查找主機地址和端口號
執(zhí)行上面命令時如何知道主機地址和端口號,可以執(zhí)行以下步驟:
①檢查 PostgreSQL 14 服務器的配置文件:打開 postgresql.conf
文件并查找 listen_addresses
和 port
參數(shù)。這些參數(shù)分別指定了服務器監(jiān)聽的主機地址和端口號。
sudo vim /var/lib/pgsql/14/data/postgresql.conf
?在文件中搜索 listen_addresses
和 port
,記下它們的值。
②檢查身份驗證配置文件:打開 pg_hba.conf
文件并查找適用于 postgres
用戶的認證規(guī)則。在這個規(guī)則中,你可以找到連接時使用的主機地址和端口號。
sudo vim /var/lib/pgsql/14/data/pg_hba.conf
找到包含 postgres
用戶的規(guī)則行,并查看其中的主機地址和端口號。
③查看系統(tǒng)日志文件:如果你已經(jīng)啟動了 PostgreSQL 14 服務器,可以查看系統(tǒng)日志文件以獲取有關主機地址和端口號的信息。
sudo tail -f /var/lib/pgsql/14/data/pg_log/postgresql-*.log
在日志文件中搜索類似于 "listening on" 或 "database system is ready to accept connections" 的消息,其中會顯示服務器正在監(jiān)聽的主機地址和端口號。
在絕大多數(shù)情況下,上述三種方法得到的主機地址和端口號應該是一致的。因為 PostgreSQL 的主配置文件 postgresql.conf
和身份驗證配置文件 pg_hba.conf
中都包含了服務器的監(jiān)聽地址和端口信息。
這兩個配置文件通常指定了服務器監(jiān)聽的主機地址和端口號。主配置文件中的 listen_addresses
參數(shù)指定了服務器監(jiān)聽的主機地址,而 port
參數(shù)指定了服務器監(jiān)聽的端口號。而身份驗證配置文件 pg_hba.conf
則指定了允許連接的主機地址和端口號。
因此,如果你在這兩個文件中找到的地址和端口號是相同的,那么這個地址和端口號就是用于連接到 PostgreSQL 14 服務器的正確參數(shù)。
然而,仍然有可能存在某些特殊情況,例如在配置文件中進行了手動修改但未重啟服務器的情況下,地址和端口號可能會不一致。因此,在使用時請務必確保準確地查找并使用正確的主機地址和端口號來連接到 PostgreSQL 14 服務器。
按照上面的步驟就已經(jīng)成功安裝配置PostgreSQL 14,接下來就可以在PostgreSQL 14 數(shù)據(jù)庫中查詢數(shù)據(jù)。
①打開終端并登錄到 CentOS 7 服務器上。
②使用以下命令連接到 PostgreSQL 數(shù)據(jù)庫:
psql -U your_username -d your_database
將 your_username
替換為你的數(shù)據(jù)庫用戶名,將 your_database
替換為你要連接的數(shù)據(jù)庫名稱。根據(jù)需要,可能需要提供密碼或其他驗證信息。
③成功連接到數(shù)據(jù)庫后,你會看到命令提示符變?yōu)?your_database=#
,表示你現(xiàn)在處于 PostgreSQL 數(shù)據(jù)庫的交互式命令行界面。
④在命令提示符下,你可以輸入 SQL 查詢語句來執(zhí)行各種數(shù)據(jù)庫查詢操作。例如,要查詢表中的所有數(shù)據(jù),可以使用以下命令:
SELECT * FROM your_table;
將 your_table
替換為你想要查詢的實際表名。
⑤根據(jù)你的查詢需求,你可以使用其他 SQL 查詢語句和關鍵字,如 SELECT
、FROM
、WHERE
、GROUP BY
、ORDER BY
等等。?
⑥當完成查詢后,你可以使用 \q
命令退出 PostgreSQL 數(shù)據(jù)庫的交互式命令行界面。
五、常用命令
--顯示所有已創(chuàng)建的數(shù)據(jù)庫列表,包括名稱、所有者、編碼等詳細信息。
\l --查看特定數(shù)據(jù)庫中的表和用戶,請首先切換到該數(shù)據(jù)庫
\c your_database--列出所有表:
\dt--查看當前數(shù)據(jù)庫中的所有用戶
SELECT * FROM pg_user;--使用 psql 命令以超級用戶身份連接到 PostgreSQL 14,然后連接到默認數(shù)據(jù)庫:
psql -U postgres--更新系統(tǒng)軟件包,確保 CentOS 7 系統(tǒng)處于最新狀態(tài)
sudo yum update--初始化 PostgreSQL 數(shù)據(jù)庫:
sudo postgresql-setup initdb--啟動 PostgreSQL 服務:
sudo systemctl start postgresql-14--驗證 PostgreSQL 14 服務器是否已成功重新啟動:(看到類似 "active (running)" 的輸出)
sudo systemctl status postgresql-14