作者:parker
環境說明
虛擬機平臺 VMware
服務器端 CentOS 7.9
本機系統 Windows 10
部署版本 OpenGauss 1.1.0
安裝詳細步驟
虛擬機VMware
本機已配置,該部分省略
CentOS 7.9 安裝
下載鏡像源CentOS-7-x86_64-DVD-2009.iso
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-KlYGC0hV-1638609392587)(http://baidu.com/pic/doge.png)]](https://img.uj5u.com/2021/12/23/290997230854091.png)
虛擬機中選中鏡像進行安裝


設定
記憶體設定為2GB
處理器設定為2
網路默認即可
聲卡和列印機不使用直接進行了移除
啟動后進入系統安裝,注意的點如下:
磁區
選擇系統-安裝位置-手動磁區進行磁區如下:


網路和主機名
選擇系統-網路和主機名進行設定如下:


記錄ip和主機名,之后配置需要用到
ip 192.168.201.131
主機名 db1
軟體選擇
選擇軟體-軟體選擇設定如下:

用戶設定
上述設定完成后點擊開始安裝,該期間根據提示完成用戶設定即可

安裝完成進行重啟,登錄系統完成安裝

上網測驗

修改作業系統版本(CentOS 7.6可省略)
通過
vi /etc/redhat-releas打開編輯檔案,修改內容如下(請使用su root切換至root用戶進行操作)

關閉防火墻
執行以下命令關閉防火墻
systemctl stop firewalld.service
systemctl disable firewalld.service

設定字符集及環境變數

關閉swap交換記憶體

yum環境配置
備份yum組態檔

下載可用源的repo檔案

查看repo檔案是否正確

yum安裝相關包
yum install -y libaio-devel flex bison ncurses-devel glibc.devel patch lsb_release wget python3

設定python版本為3.x

修改完成后,確認yum是否使用,若不能使用,如本例中,修改/usr/bin/yum檔案,修改#!/usr/bin/python為#!/usr/bin/python2.7

資料庫安裝
創建存放資料庫安裝目錄

下載資料庫安裝包

創建xml組態檔,用于資料庫安裝
在openGauss檔案夾下
vi clusterconfig.xml編輯以下內容
<?xml version="1.0" encoding="UTF-8"?> <ROOT> <!-- openGauss整體資訊 --> <CLUSTER> <PARAM name="clusterName" value="dbCluster" /> <PARAM name="nodeNames" value="db1" /> <PARAM name="backIp1s" value="10.0.3.15"/> <PARAM name="gaussdbAppPath" value="/opt/gaussdb/app" /> <PARAM name="gaussdbLogPath" value="/var/log/gaussdb" /> <PARAM name="gaussdbToolPath" value="/opt/huawei/wisequery" /> <PARAM name="corePath" value="/opt/opengauss/corefile"/> <PARAM name="clusterType" value="single-inst"/> </CLUSTER> <!-- 每臺服務器上的節點部署資訊 --> <DEVICELIST> <!-- node1上的節點部署資訊 --> <DEVICE sn="1000001"> <PARAM name="name" value="db1"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <!-- 如果服務器只有一個網卡可用,將backIP1和sshIP1配置成同一個IP --> <PARAM name="backIp1" value="10.0.3.15"/> <PARAM name="sshIp1" value="10.0.3.15"/><span class="hljs-comment"><!--dbnode--></span> <span class="hljs-tag"><<span class="hljs-name">PARAM</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"dataNum"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"1"</span>/></span> <span class="hljs-tag"><<span class="hljs-name">PARAM</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"dataPortBase"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"26000"</span>/></span> <span class="hljs-tag"><<span class="hljs-name">PARAM</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"dataNode1"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"/gaussdb/data/db1"</span>/></span> <span class="hljs-tag"></<span class="hljs-name">DEVICE</span>></span> <span class="hljs-tag"></<span class="hljs-name">DEVICELIST</span>></span>
</ROOT>
其中ip設定為之前的192.168.201.131,主機名為db1,如下:

解壓安裝包

解壓后查看并修改檔案權限

執行初始化腳本
cd /opt/software/openGauss/script
python gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/clusterconfig.xml
回傳Preinstallation succeeded內容時,初始化完成

初始化資料庫
重啟虛擬機后使用omm用戶進行資料庫初始化
gs_install -X /opt/software/openGauss/clusterconfig.xml --gsinit-parameter="--encoding=UTF8" --dn-guc="max_process_memory=2GB" --dn-guc="shared_buffers=128MB" --dn-guc="bulk_write_ring_size=128MB" --dn-guc="cstore_buffers=16MB"
其中對應的引數記憶體大小須根據虛擬機情況進行設定

安裝完成后清理軟體安裝包

連接資料庫

JDBC配置
從官方網站選取對應版本的jar包并解壓,在eclipse上配置加載驅動類,
第一次連接后操作資料庫需要修改omm用戶密碼

根據官方檔案提供的demo程式修改后進行連接測驗,連接成功如下:

demo程式:
package gaussjdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.sql.CallableStatement;
public class Gaussjdbc {
<span class="hljs-comment">//創建資料庫連接,</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> Connection <span class="hljs-title function_">GetConnection</span><span class="hljs-params">(String username, String passwd)</span> {
<span class="hljs-type">String</span> <span class="hljs-variable">driver</span> <span class="hljs-operator">=</span> <span class="hljs-string">"org.postgresql.Driver"</span>;
<span class="hljs-type">String</span> <span class="hljs-variable">sourceURL</span> <span class="hljs-operator">=</span> <span class="hljs-string">"jdbc:postgresql://192.168.201.131:26000/postgres"</span>;
<span class="hljs-type">Connection</span> <span class="hljs-variable">conn</span> <span class="hljs-operator">=</span> <span class="hljs-literal">null</span>;
<span class="hljs-keyword">try</span> {
<span class="hljs-comment">//加載資料庫驅動,</span>
Class.forName(driver).newInstance();
} <span class="hljs-keyword">catch</span> (Exception e) {
e.printStackTrace();
<span class="hljs-keyword">return</span> <span class="hljs-literal">null</span>;
}
<span class="hljs-keyword">try</span> {
<span class="hljs-comment">//創建資料庫連接,</span>
conn = DriverManager.getConnection(sourceURL, username, passwd);
System.out.println(<span class="hljs-string">"Connection succeed!"</span>);
} <span class="hljs-keyword">catch</span> (Exception e) {
e.printStackTrace();
<span class="hljs-keyword">return</span> <span class="hljs-literal">null</span>;
}
<span class="hljs-keyword">return</span> conn;
};
<span class="hljs-comment">//執行普通SQL陳述句,創建customer_t1表,</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">CreateTable</span><span class="hljs-params">(Connection conn)</span> {
<span class="hljs-type">Statement</span> <span class="hljs-variable">stmt</span> <span class="hljs-operator">=</span> <span class="hljs-literal">null</span>;
<span class="hljs-keyword">try</span> {
stmt = conn.createStatement();
<span class="hljs-comment">//執行普通SQL陳述句,</span>
<span class="hljs-type">int</span> <span class="hljs-variable">rc</span> <span class="hljs-operator">=</span> stmt
.executeUpdate(<span class="hljs-string">"CREATE TABLE customer_t1(c_customer_sk INTEGER, c_customer_name VARCHAR(32));"</span>);
stmt.close();
} <span class="hljs-keyword">catch</span> (SQLException e) {
<span class="hljs-keyword">if</span> (stmt != <span class="hljs-literal">null</span>) {
<span class="hljs-keyword">try</span> {
stmt.close();
} <span class="hljs-keyword">catch</span> (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}
}
<span class="hljs-comment">//執行預處理陳述句,批量插入資料,</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">BatchInsertData</span><span class="hljs-params">(Connection conn)</span> {
<span class="hljs-type">PreparedStatement</span> <span class="hljs-variable">pst</span> <span class="hljs-operator">=</span> <span class="hljs-literal">null</span>;
<span class="hljs-keyword">try</span> {
<span class="hljs-comment">//生成預處理陳述句,</span>
pst = conn.prepareStatement(<span class="hljs-string">"INSERT INTO customer_t1 VALUES (?,?)"</span>);
<span class="hljs-keyword">for</span> (<span class="hljs-type">int</span> <span class="hljs-variable">i</span> <span class="hljs-operator">=</span> <span class="hljs-number">0</span>; i < <span class="hljs-number">3</span>; i++) {
<span class="hljs-comment">//添加引數,</span>
pst.setInt(<span class="hljs-number">1</span>, i);
pst.setString(<span class="hljs-number">2</span>, <span class="hljs-string">"data "</span> + i);
pst.addBatch();
}
<span class="hljs-comment">//執行批處理,</span>
pst.executeBatch();
pst.close();
} <span class="hljs-keyword">catch</span> (SQLException e) {
<span class="hljs-keyword">if</span> (pst != <span class="hljs-literal">null</span>) {
<span class="hljs-keyword">try</span> {
pst.close();
} <span class="hljs-keyword">catch</span> (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}
}
<span class="hljs-comment">//執行預編譯陳述句,更新資料,</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">ExecPreparedSQL</span><span class="hljs-params">(Connection conn)</span> {
<span class="hljs-type">PreparedStatement</span> <span class="hljs-variable">pstmt</span> <span class="hljs-operator">=</span> <span class="hljs-literal">null</span>;
<span class="hljs-keyword">try</span> {
pstmt = conn
.prepareStatement(<span class="hljs-string">"UPDATE customer_t1 SET c_customer_name = ? WHERE c_customer_sk = 1"</span>);
pstmt.setString(<span class="hljs-number">1</span>, <span class="hljs-string">"new Data"</span>);
<span class="hljs-type">int</span> <span class="hljs-variable">rowcount</span> <span class="hljs-operator">=</span> pstmt.executeUpdate();
pstmt.close();
} <span class="hljs-keyword">catch</span> (SQLException e) {
<span class="hljs-keyword">if</span> (pstmt != <span class="hljs-literal">null</span>) {
<span class="hljs-keyword">try</span> {
pstmt.close();
} <span class="hljs-keyword">catch</span> (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}
}
<span class="hljs-comment">//執行存盤程序,</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">ExecCallableSQL</span><span class="hljs-params">(Connection conn)</span> {
<span class="hljs-type">CallableStatement</span> <span class="hljs-variable">cstmt</span> <span class="hljs-operator">=</span> <span class="hljs-literal">null</span>;
<span class="hljs-keyword">try</span> {
cstmt=conn.prepareCall(<span class="hljs-string">"{? = CALL TESTPROC(?,?,?)}"</span>);
cstmt.setInt(<span class="hljs-number">2</span>, <span class="hljs-number">50</span>);
cstmt.setInt(<span class="hljs-number">1</span>, <span class="hljs-number">20</span>);
cstmt.setInt(<span class="hljs-number">3</span>, <span class="hljs-number">90</span>);
cstmt.registerOutParameter(<span class="hljs-number">4</span>, Types.INTEGER); <span class="hljs-comment">//注冊out型別的引數,型別為整型,</span>
cstmt.execute();
<span class="hljs-type">int</span> <span class="hljs-variable">out</span> <span class="hljs-operator">=</span> cstmt.getInt(<span class="hljs-number">4</span>); <span class="hljs-comment">//獲取out引數</span>
System.out.println(<span class="hljs-string">"The CallableStatment TESTPROC returns:"</span>+out);
cstmt.close();
} <span class="hljs-keyword">catch</span> (SQLException e) {
<span class="hljs-keyword">if</span> (cstmt != <span class="hljs-literal">null</span>) {
<span class="hljs-keyword">try</span> {
cstmt.close();
} <span class="hljs-keyword">catch</span> (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}
}
<span class="hljs-comment">/**
* 主程式,逐步呼叫各靜態方法,
* <span class="hljs-doctag">@param</span> args
*/</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">main</span><span class="hljs-params">(String[] args)</span> {
<span class="hljs-comment">//創建資料庫連接,</span>
<span class="hljs-type">Connection</span> <span class="hljs-variable">conn</span> <span class="hljs-operator">=</span> GetConnection(<span class="hljs-string">"parker"</span>, <span class="hljs-string">"parker@123"</span>);
<span class="hljs-comment">//創建表,</span>
CreateTable(conn);
<span class="hljs-comment">//批插資料,</span>
BatchInsertData(conn);
<span class="hljs-comment">//執行預編譯陳述句,更新資料,</span>
ExecPreparedSQL(conn);
<span class="hljs-comment">//執行存盤程序,</span>
<span class="hljs-comment">//ExecCallableSQL(conn);//這部分在運行時有問題,直接注釋掉了</span>
<span class="hljs-comment">//關閉資料庫連接,</span>
<span class="hljs-keyword">try</span> {
conn.close();
} <span class="hljs-keyword">catch</span> (SQLException e) {
e.printStackTrace();
}
}
}
安裝中遇到的問題與解決程序
初始化腳本失敗報錯


CentOS上配置JAVA
自帶的java路徑尋找:

配置CentOS環境變數:

而后期驗證javac時發現CentOS其自帶的java僅有運行環境,改用windows作為客戶端,
也可以自行下載java環境配置進行解決配置:

資料庫連接問題
地址錯誤
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-thl1OANz-1640135994204)(https://im g-blog.csdnimg.cn/a2022ab297504833a5722c40ef08b9de.PNG?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUGFya2VybGpj,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)]
修改后ip未放行錯誤
資料庫連接問題
地址錯誤
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wqUhszmX-1640136084555)(https://im g-blog.csdnimg.cn/a2022ab297504833a5722c40ef08b9de.PNG?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUGFya2VybGpj,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)]
修改后ip未放行錯誤

放行ip命令(在官方檔案客戶端接入驗證處可以查詢)如下
gs_guc set -N all -I all -h "host all parker 192.168.201.1/32 sha256"
具體的接入ip若不清楚可以通過報錯資訊或本地的ipconfig進行查看
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/390535.html
標籤:其他
