最近開始體驗FastGPT或Dify等開源知識庫問答系統,用他們試著開發調試一些小助手。這中間需要使用到PostgreSQL,就在自己伺服器上進行了安裝,特此記錄下。 環境說明:阿裡雲ECS,2核8G,X86架構,CentOS 7.9操作系統。 選擇版本 1.打開PostgreSQL官網下載頁面,選 ...
最近開始體驗FastGPT或Dify等開源知識庫問答系統,用他們試著開發調試一些小助手。這中間需要使用到PostgreSQL,就在自己伺服器上進行了安裝,特此記錄下。
環境說明:阿裡雲ECS,2核8G,X86架構,CentOS 7.9操作系統。
選擇版本
- 1.打開PostgreSQL官網下載頁面,選擇操作系統和資料庫版本。我本機操作系統是CentOS 7.9,x86架構,選擇安裝的資料庫版本是PostgreSQL15這個版本。大家根據自己實際情況選擇就行。
Server安裝
- 1.由於官方都把命令給我們提供好了,登錄伺服器直接執行就行,傻瓜式安裝(非root用戶需要使用sudo)。
# 安裝倉庫RPM
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安裝PostgreSQL server
yum install -y postgresql15-server
# 初始化
/usr/pgsql-15/bin/postgresql-15-setup initdb
- 2.啟動PostgreSQL,並設置為開機自啟動。
# 啟動
systemctl start postgresql-15
# 設置為開機自啟動
systemctl enable postgresql-15
- 3.安裝完成後,PostgreSQL的配置文件在目錄
/var/lib/pgsql/15/data
下。一般比較常見的是修改postgresql.conf
和pg_hba.conf
,可以修改監聽地址允許遠程連接資料庫、修改預設埠號、以及IP黑白名單限制等。
# 監聽所有IP,允許遠程連接資料庫
listen_addresses = '*'
# 修改預設埠號
port = 55432
- 4.修改完配置記得重啟PostgreSQL。
systemctl restart postgresql-15
- 5.編輯
/etc/profile
修改PATH環境變數,修改完成後執行source /etc/profile
使之生效。
# 這裡僅供參考,只需要將/usr/pgsql-15/bin/添加到環境變數即可
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/pgsql-15/bin/:$PATH
- 6.切換到postgres用戶,使用psql登錄資料庫,安裝完成。
# 切換到postgres用戶
su postgres
# 使用psql登錄資料庫,如果是預設5432埠,則不用攜帶-p 參數
psql -p 55432
# 如有需要,可以通過以下命令修改postgres賬號的密碼
ALTER USER postgres WITH PASSWORD 'your password';
pgvector插件安裝
- 1.首先需要安裝postgresql15-devel。
# 安裝PostgreSQL15開發工具包
yum install -y postgresql15-devel
# 如果上一步執行時報錯,那麼請先安裝centos-release-scl-rh包,再安裝PostgreSQL開發工具包
Error: Package: postgresql15-devel-15.5-1PGDG.rhel7.x86_64 (pgdg15)
Requires: llvm-toolset-7-clang >= 4.0.1
# 安裝centos-release-scl-rh包
yum install -y centos-release-scl-rh
- 2.下載pgvector插件源碼包,併進行編譯和安裝(需要root許可權)。
# 先安裝git(如果已安裝,跳過)
yum install -y git
# 切換到/tmp目錄,下載源碼包,我這裡選擇是目前最新版本0.5.1
cd /tmp
git clone --branch v0.5.1 https://github.com/pgvector/pgvector.git
# 進入/tmp/pgvector目錄,進行編譯安裝
cd pgvector
make & make install
- 3.登錄PostgreSQL,選擇資料庫安裝vector擴展。
# 創建demo資料庫
create database demo;
# 切換到demo資料庫
\c demo
# 安裝vector擴展
CREATE EXTENSION vector;
# 創建測試表
CREATE TABLE test (id bigserial PRIMARY KEY, embedding vector(3));
# 插入測試數據
INSERT INTO test (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');
# 按與給定向量相似度(L2 distance)排序,顯示前5條
SELECT * FROM test ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
至此,全部完成