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