PostgreSQL
設定本地 PostgreSQL 資料庫
概述
本頁面解釋瞭如何安裝和配置 PostgreSQL 資料庫伺服器 和 psql 命令列客戶端。本指南將介紹如何在您的計算機上安裝和設定這些元件以進行本地訪問。
本指南將涵蓋以下平臺
導航到與您將使用的平臺相匹配的部分。
擁有 PostgreSQL 資料庫後,您可以使用 Prisma Client 從您的 JavaScript 或 TypeScript 應用程式中管理它。嘗試我們的 PostgreSQL 入門指南 來開始。
在 Windows 上設定 PostgreSQL
PostgreSQL 專案提供了原生 Windows 安裝程式,用於安裝和配置您的資料庫。
訪問 PostgreSQL Windows 安裝頁面 查詢安裝程式的連結。點選頁面開頭的“下載安裝程式”。
在接下來的頁面中,在 Windows x86-64 或 Windows x86-32 列(取決於您的計算機架構)中,選擇您希望安裝的 PostgreSQL 版本。
點選您選擇的版本旁的“下載”並將其儲存到方便的位置。
下載完成後,雙擊檔案執行安裝程式(您可能需要確認允許程式對您的計算機進行更改)。
在初始頁面上點選“下一步”開始配置安裝。
在下一頁,選擇您的安裝目錄。
點選“下一步”接受預設位置。
下一頁允許您選擇要安裝的元件。您至少需要選中 PostgreSQL 伺服器和命令列工具。
點選“下一步”繼續。
現在,選擇資料庫資料檔案的儲存位置。
點選“下一步”接受預設位置。
接下來,選擇並確認 PostgreSQL 超級使用者(名為 postgres)的管理密碼。
完成後點選“下一步”。
選擇伺服器將監聽的埠。
點選“下一步”接受預設的 5432 埠。
現在,選擇您的資料庫將使用的區域設定。
點選“下一步”使用您計算機的預設區域設定。
安裝的配置部分現已完成。您可以檢視您所做選擇的摘要。
如果一切看起來都正確,點選“下一步”。
最後,PostgreSQL 已準備好安裝。
點選“下一步”開始安裝過程。
安裝完成後,您可以使用 psql 命令列工具驗證安裝。
在您的開始選單中,輸入 psql 並點選該工具啟動程式。系統將提示您輸入要使用的連線詳細資訊。
按 Enter 接受方括號中給出的預設選項。最後一個提示將是您在設定期間配置的 postgres 使用者的密碼。
成功認證後,您將進入與資料庫的互動式 psql 會話。
完成後,透過輸入以下命令退出會話:
\quit
在 macOS 上設定 PostgreSQL
PostgreSQL 專案提供了原生 macOS 安裝程式,用於安裝和配置您的資料庫。
訪問 PostgreSQL macOS 安裝頁面 查詢安裝程式的連結。點選 Interactive Installer by EnterpriseDB 部分開頭的“下載安裝程式”。
在接下來的頁面中,在 Mac OS X 列中,選擇您希望安裝的 PostgreSQL 版本。
點選您選擇的版本旁的“下載”並將其儲存到方便的位置。
下載完成後,在“下載”資料夾中找到 PostgreSQL 安裝程式 DMG 檔案。雙擊下載的 DMG 檔案以掛載安裝程式歸檔。
在掛載的歸檔中,點選 PostgreSQL 安裝程式包(系統可能會提示您確認是否允許該包對您的計算機進行更改)。
PostgreSQL 安裝程式將開啟歡迎介面。
在初始頁面上點選“下一步”開始配置安裝。
在下一頁,選擇您的安裝目錄。
點選“下一步”接受預設位置。
下一頁允許您選擇要安裝的元件。您至少需要選中 PostgreSQL 伺服器和命令列工具。
點選“下一步”繼續。
現在,選擇資料庫資料檔案的儲存位置。
點選“下一步”接受預設位置。
在下一頁,選擇並確認 PostgreSQL 超級使用者(名為 postgres)的管理密碼。
完成後點選“下一步”。
下一頁允許您選擇伺服器將監聽的埠。
點選“下一步”接受預設的 5432 埠。
現在,選擇您的資料庫將使用的區域設定。
點選“下一步”使用您計算機的預設區域設定。
安裝的配置部分現已完成。您可以檢視您所做選擇的摘要。
如果一切看起來都正確,點選“下一步”。
PostgreSQL 已準備好安裝。
點選“下一步”開始安裝過程。
程序完成後,安裝程式將確認完成。
PostgreSQL 安裝完成後,您可以使用 psql 命令列工具驗證安裝。雖然此客戶端已安裝,但我們需要修改終端的 PATH 變數以便於訪問它。
開啟一個新的終端視窗開始。首先,透過輸入以下命令找到 PostgreSQL bin 目錄:
ls -d /Library/PostgreSQL/*/bin
響應將是您的 PostgreSQL bin 目錄。例如:
/Library/PostgreSQL/12/bin
現在您知道了要使用的目錄,透過輸入以下命令編輯 /etc/paths 檔案:
sudo nano /etc/paths
系統將提示您輸入計算機的管理密碼以繼續。
將您找到的 bin 目錄路徑新增到檔案底部。
完成後,按 CTL-X、Y,然後按 ENTER 儲存並關閉檔案。
要使用新的 PATH 設定,請開啟一個新的終端視窗。在新視窗中,輸入:
psql -U postgres
系統將提示您輸入在 PostgreSQL 配置過程中設定的 postgres 使用者的管理密碼。
成功認證後,您將進入與資料庫的互動式 psql 會話。
完成後,輸入以下命令退出會話:
\quit
在 Linux 上設定 PostgreSQL
安裝方法因您使用的 Linux 發行版而異。請按照下面與您的 Linux 發行版匹配的部分進行操作。
Debian 和 Ubuntu
您可以選擇使用您的發行版預設儲存庫中可用的 PostgreSQL 版本,也可以使用 PostgreSQL 專案提供的儲存庫。預設儲存庫中的軟體包已測試可與您的發行版提供的所有其他軟體配合使用,但可能較舊。PostgreSQL 專案的軟體包將更加新,但可能需要額外的配置。
使用 Debian 或 Ubuntu 的預設儲存庫安裝
Ubuntu 和 Debian 都提供了作為軟體包在其預設儲存庫中的 PostgreSQL 伺服器版本。PostgreSQL 版本可能比 PostgreSQL 網站上的版本舊,但這是在這些發行版上安裝的最簡單方法。
要安裝 PostgreSQL 伺服器,請使用最新軟體包集更新計算機的本地軟體包快取。之後,安裝 postgresql 軟體包:
sudo apt updatesudo apt install postgresql
預設情況下,PostgreSQL 配置為使用 對等認證,它允許使用者在作業系統使用者名稱與 PostgreSQL 內部名稱匹配時登入。
安裝過程建立了一個名為 postgres 的作業系統使用者,以匹配 postgres 資料庫管理帳戶。要使用 psql 客戶端登入 PostgreSQL,請使用 sudo 以 postgres 使用者身份執行命令:
sudo -u postgres psql
完成後,您可以輸入以下命令退出 psql 會話:
\quit
使用 PostgreSQL 專案的 Debian 和 Ubuntu 儲存庫安裝
如果您需要更新的 PostgreSQL 版本,可以使用 PostgreSQL 專案維護的儲存庫,而不是您的 Linux 發行版提供的儲存庫。
首先,透過輸入以下命令向您的系統新增新的儲存庫定義:
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(. /etc/os-release; echo $VERSION_CODENAME)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
接下來,將 PostgreSQL 軟體包簽名金鑰新增到 apt,使其信任新儲存庫中的軟體包:
wget --quiet -O - https://postgres.tw/media/keys/ACCC4CF8.asc | sudo apt-key add -
設定好儲存庫後,您可以更新本地軟體包索引,然後透過輸入以下命令安裝 PostgreSQL:
sudo apt updatesudo apt install postgresql
預設情況下,PostgreSQL 配置為使用 對等認證,它允許使用者在作業系統使用者名稱與 PostgreSQL 內部名稱匹配時登入。
安裝過程建立了一個名為 postgres 的作業系統使用者,以匹配 postgres 資料庫管理帳戶。要使用 psql 客戶端登入 PostgreSQL,請使用 sudo 以 postgres 使用者身份執行命令:
sudo -u postgres psql
完成後,您可以輸入以下命令退出 psql 會話:
\quit
CentOS 和 Fedora
您可以選擇使用您的發行版預設儲存庫中可用的 PostgreSQL 版本,也可以使用 PostgreSQL 專案提供的儲存庫。預設儲存庫中的軟體包已測試可與您的發行版提供的所有其他軟體配合使用,但可能較舊。PostgreSQL 專案的軟體包將更加新,但可能需要額外的配置。
使用 CentOS 或 Fedora 的預設儲存庫安裝
CentOS 和 Fedora 都提供了作為軟體包在其預設儲存庫中的 PostgreSQL 伺服器版本。PostgreSQL 版本可能比 PostgreSQL 網站上的版本舊,但這是在這些發行版上安裝的最簡單方法。
要安裝 PostgreSQL 伺服器,請使用您的發行版的軟體包管理器安裝 mysql-server 軟體包:
對於 CentOS,使用 yum 軟體包管理器:
sudo yum install postgresql-server
對於 Fedora,使用 dnf 軟體包管理器:
sudo dnf install postgresql-server
MySQL 軟體包安裝完成後,透過輸入以下命令初始化資料庫:
sudo postgresql-setup initdb
之後,透過輸入以下命令啟動服務:
sudo systemctl start postgresql.service
(可選)您可以透過輸入以下命令在啟動時自動啟動 PostgreSQL:
sudo systemctl enable postgresql.service
預設情況下,PostgreSQL 配置為使用 對等認證,它允許使用者在作業系統使用者名稱與 PostgreSQL 內部名稱匹配時登入。
安裝過程建立了一個名為 postgres 的作業系統使用者,以匹配 postgres 資料庫管理帳戶。要使用 psql 客戶端登入 PostgreSQL,請使用 sudo 以 postgres 使用者身份執行命令:
sudo -u postgres psql
完成後,您可以輸入以下命令退出 psql 會話:
\quit
使用 PostgreSQL 專案的 CentOS 和 Fedora 儲存庫安裝
如果您需要更新的 PostgreSQL 版本,可以使用 PostgreSQL 專案維護的儲存庫,而不是您的 Linux 發行版提供的儲存庫。
要配置 PostgreSQL 專案的儲存庫,請在您的終端中下載並安裝儲存庫設定包。
對於 CentOS,執行以下命令:
sudo yum install "https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(. /etc/os-release; echo $VERSION_ID)-x86_64/pgdg-redhat-repo-latest.noarch.rpm"
對於 Fedora,使用此命令:
sudo dnf install "https://download.postgresql.org/pub/repos/yum/reporpms/F-$(. /etc/os-release; echo $VERSION_ID)-x86_64/pgdg-fedora-repo-latest.noarch.rpm"
如果您使用的是 CentOS 8,您還必須停用系統的 PostgreSQL 模組,以防止它干擾儲存庫的 PostgreSQL 版本。為此,請輸入:
sudo yum module disable postgresql
接下來,選擇您希望的目標 PostgreSQL 版本。
對於 CentOS,透過輸入以下命令檢查可用的 PostgreSQL 版本:
yum list postgresql*-server
對於 Fedora,使用 dnf 軟體包管理器:
dnf list postgresql*-server
決定使用哪個版本後,您可以使用軟體包管理器安裝它。
對於 CentOS,使用 yum 軟體包管理器。例如,要安裝 PostgreSQL 12,請輸入:
sudo yum install postgresql12-server
對於 Fedora,使用 dnf 軟體包管理器。例如,要安裝 PostgreSQL 12,請輸入:
sudo dnf install postgresql12-server
PostgreSQL 軟體包安裝完成後,初始化資料庫:
sudo /usr/pgsql-*/bin/postgresql-*-setup initdb
找到您的 PostgreSQL 版本的 systemd 單元檔名稱:
systemctl list-unit-files | grep postgresql
使用您找到的單元檔案啟動服務。例如,對於 PostgreSQL 12,將是:
sudo systemctl start postgresql-12.service
(可選)您還可以使用 enable 在啟動時自動啟動 PostgreSQL。
sudo systemctl enable postgresql-12.service
預設情況下,PostgreSQL 配置為使用 對等認證,它允許使用者在作業系統使用者名稱與 PostgreSQL 內部名稱匹配時登入。
安裝過程建立了一個名為 postgres 的作業系統使用者,以匹配 postgres 資料庫管理帳戶。要使用 psql 客戶端登入 PostgreSQL,請使用 sudo 以 postgres 使用者身份執行命令:
sudo -u postgres psql
完成後,您可以輸入以下命令退出 psql 會話:
\quit





























