內容概括
? ? ? ? 最近在研究怎么在ubuntu服務器環境下使用opengauss,看了下官方下載地址沒有適配ubuntu的安裝包。仔細翻了下官方文檔,發現安裝指南里有提供一個deb包安裝方案,有適配ubuntu,經過實踐可行,于是記錄下來給有需要的朋友參考下。
系統環境
????????ubuntu-22.04.4-live-server
安裝步驟
????????參考官方安裝指南:Deb包安裝 | openGauss文檔 | openGauss社區
????????注意:這里適用版本為ubuntu 22.04 LTS,其他ubuntu版本我沒實踐過,有條件可以在虛擬機先嘗試下。
? ? ? ? deb方式opengauss數據庫版本這種方式默認安裝的是6.0.0企業版,不包含mot,obs和codegen功能,以及om、cm等外部組件,僅有純數據庫功能(支持兼容性B庫)。
????????下面介紹安裝命令,執行命令前先切換到root用戶,避免某些文件夾訪問權限問題。安裝過程中會自動創建opengauss這個用戶,后續對opengauss數據庫的操作,都需要切換到這個用戶下進行。
1、添加OpenGauss官方PPA 源到系統軟件源列表
add-apt-repository ppa:opengauss/opengauss
添加完成如圖:
2、?刷新系統軟件包索引
使系統識別新添加的OpenGauss PPA源中的可用軟件版本。
apt update
更新完成如圖:
?3、安裝OpenGauss數據庫
apt install opengauss
安裝完成如圖:
數據庫配置
1、啟動服務
????????安裝過程中會下載并安裝 OpenGauss 核心組件,配置系統服務(注冊為 systemd 服務),創建默認數據目錄(通常在/var/lib/opengauss
)。并創建opengauss用戶,用于管理opengauss數據庫。
根據提示執行如下命令啟動數據庫:
service opengauss start
查看數據庫服務狀態:systemctl status opengauss.service
????????可以看到數據庫服務正常啟動,這里的disabled表示默認是未開啟開機啟動的,如果需要數據庫服務隨服務器開機自啟,執行systemctl enable opengauss.service即可
2、數據庫本地連接
(1)切換到opengauss用戶
su - opengauss(從root用戶切換到opengauss不用輸密碼)
執行ps ux查看進程,可以看到opengauss服務進程信息:
(2)數據庫連接
在opengauss用戶下,執行gsql -d postgres -p 7654可連接到數據庫服務,進入sql命令行
創建完用戶后可以使用對應用戶登錄(需驗證對應用戶的密碼)
3、遠程訪問配置
????????數據庫服務默認監聽127.0.0.1:7654地址和端口。如果需要進行遠程連接,需要手動修改配置文件,并重啟數據庫服務。
這里介紹下如何修改配置文件,使得其他局域網內的主機能訪問opengauss數據庫。
主要是以下兩個配置文件,位置在opengauss用戶的家目錄下,絕對路徑在/var/lib/opengauss/data
(1)postgresql.conf 配置
(2)pg_hba.conf 配置
注意:調整完后記得重啟數據庫服務生效:systemctl restart opengauss.service
親測以上配置調整完,便可以通過其他主機遠程訪問了,或者通過Navicat等工具連接。
JDBC連接參數
數據庫配置完成后,JDBC參數配置如下:
spring.datasource.driver-class-name=org.opengauss.Driver
spring.datasource.url=jdbc:opengauss://192.168.1.10:7654/test_db
spring.datasource.username=joe
spring.datasource.password=joe_1234
?具體服務器ip和端口配置以及數據庫名,按自己的調整即可。
驅動可在官方下載地址獲取:openGauss軟件 | openGauss下載 | openGauss軟件包 | openGauss社區
其他問題
卸載opengauss:apt remove opengauss
刪除安裝時添加的opengauss ppa倉庫:add-apt-repository --remove ppa:opengauss/opengauss
具體數據庫特性和SQL語法方面,請參考opengauss官方文檔:
使用open Gauss | openGauss文檔 | openGauss社區
over~