CentOs 虛擬機(jī)下 opengauss 的配置使用
環(huán)境說明
虛擬機(jī)平臺 VMware
服務(wù)器端 CentOS 7.9
本機(jī)系統(tǒng) Windows 10
部署版本 OpenGauss 1.1.0
安裝詳細(xì)步驟
-
虛擬機(jī) VMware
本機(jī)已配置,該部分省略
-
CentOS 7.9 安裝
下載鏡像源 CentOS-7-x86_64-DVD-2009.iso
-
虛擬機(jī)中選中鏡像進(jìn)行安裝
-
設(shè)置
內(nèi)存設(shè)置為 2GB
處理器設(shè)置為 2
網(wǎng)絡(luò)默認(rèn)即可
聲卡和打印機(jī)不使用直接進(jìn)行了移除
啟動(dòng)后進(jìn)入系統(tǒng)安裝,注意的點(diǎn)如下:
-
分區(qū)
選擇系統(tǒng)-安裝位置-手動(dòng)分區(qū)進(jìn)行分區(qū)如下:
-
網(wǎng)絡(luò)和主機(jī)名
選擇系統(tǒng)-網(wǎng)絡(luò)和主機(jī)名進(jìn)行設(shè)置如下:
記錄 ip 和主機(jī)名,之后配置需要用到
ip ***.***.***.*** 主機(jī)名 db1
-
軟件選擇
選擇軟件-軟件選擇設(shè)置如下:
-
用戶設(shè)置
上述設(shè)置完成后點(diǎn)擊開始安裝,該期間根據(jù)提示完成用戶設(shè)置即可
安裝完成進(jìn)行重啟,登錄系統(tǒng)完成安裝
-
上網(wǎng)測試
-
修改操作系統(tǒng)版本(CentOS 7.6 可省略)
通過
vi /etc/redhat-releas 打開編輯文件,修改內(nèi)容如下(請使用 su root 切換至 root 用戶進(jìn)行操作)
-
關(guān)閉防火墻
執(zhí)行以下命令關(guān)閉防火墻
systemctl stop firewalld.service systemctl disable firewalld.service
-
設(shè)置字符集及環(huán)境變量
-
關(guān)閉 swap 交換內(nèi)存
-
yum 環(huán)境配置
備份 yum 配置文件
-
下載可用源的 repo 文件
-
查看 repo 文件是否正確
-
yum 安裝相關(guān)包
yum install -y libaio-devel flex bison ncurses-devel glibc.devel patch lsb_release wget python3
設(shè)置 python 版本為 3.x
-
修改完成后,確認(rèn) yum 是否使用,若不能使用,如本例中。修改/usr/bin/yum 文件,修改#!/usr/bin/python 為#!/usr/bin/python2.7
數(shù)據(jù)庫安裝
-
創(chuàng)建存放數(shù)據(jù)庫安裝目錄
-
下載數(shù)據(jù)庫安裝包
-
創(chuàng)建 xml 配置文件,用于數(shù)據(jù)庫安裝
在 openGauss 文件夾下
vi clusterconfig.xml 編輯以下內(nèi)容
<?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> <!-- 每臺服務(wù)器上的節(jié)點(diǎn)部署信息 --> <DEVICELIST> <!-- node1上的節(jié)點(diǎn)部署信息 --> <DEVICE sn="1000001"> <PARAM name="name" value="db1"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <!-- 如果服務(wù)器只有一個(gè)網(wǎng)卡可用,將backIP1和sshIP1配置成同一個(gè)IP --> <PARAM name="backIp1" value="10.0.3.15"/> <PARAM name="sshIp1" value="10.0.3.15"/> <!--dbnode--> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="26000"/> <PARAM name="dataNode1" value="/gaussdb/data/db1"/> </DEVICE> </DEVICELIST> </ROOT>
其中 ip 設(shè)置為之前的?...,主機(jī)名為 db1,如下:
-
解壓安裝包
-
解壓后查看并修改文件權(quán)限
-
執(zhí)行初始化腳本
cd /opt/software/openGauss/script python gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/clusterconfig.xml
返回 Preinstallation succeeded 內(nèi)容時(shí),初始化完成
-
初始化數(shù)據(jù)庫
重啟虛擬機(jī)后使用 omm 用戶進(jìn)行數(shù)據(jù)庫初始化
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"
其中對應(yīng)的參數(shù)內(nèi)存大小須根據(jù)虛擬機(jī)情況進(jìn)行設(shè)置
-
安裝完成后清理軟件安裝包
連接數(shù)據(jù)庫
-
JDBC 配置
從官方網(wǎng)站選取對應(yīng)版本的 jar 包并解壓,在 eclipse 上配置加載驅(qū)動(dòng)類。
第一次連接后操作數(shù)據(jù)庫需要修改 omm 用戶密碼
根據(jù)官方文檔提供的 demo 程序修改后進(jìn)行連接測試,連接成功如下:
-
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 {
//創(chuàng)建數(shù)據(jù)庫連接。 public static Connection GetConnection(String username, String passwd) { String driver = "org.postgresql.Driver"; String sourceURL = "jdbc:postgresql://***.***.***.***:26000/postgres"; Connection conn = null; try { //加載數(shù)據(jù)庫驅(qū)動(dòng)。 Class.forName(driver).newInstance(); } catch (Exception e) { e.printStackTrace(); return null; } try { //創(chuàng)建數(shù)據(jù)庫連接。 conn = DriverManager.getConnection(sourceURL, username, passwd); System.out.println("Connection succeed!"); } catch (Exception e) { e.printStackTrace(); return null; } return conn; }; //執(zhí)行普通SQL語句,創(chuàng)建customer_t1表。 public static void CreateTable(Connection conn) { Statement stmt = null; try { stmt = conn.createStatement(); //執(zhí)行普通SQL語句。 int rc = stmt .executeUpdate("CREATE TABLE customer_t1(c_customer_sk INTEGER, c_customer_name VARCHAR(32));"); stmt.close(); } catch (SQLException e) { if (stmt != null) { try { stmt.close(); } catch (SQLException e1) { e1.printStackTrace(); } } e.printStackTrace(); } } //執(zhí)行預(yù)處理語句,批量插入數(shù)據(jù)。 public static void BatchInsertData(Connection conn) { PreparedStatement pst = null; try { //生成預(yù)處理語句。 pst = conn.prepareStatement("INSERT INTO customer_t1 VALUES (?,?)"); for (int i = 0; i < 3; i++) { //添加參數(shù)。 pst.setInt(1, i); pst.setString(2, "data " + i); pst.addBatch(); } //執(zhí)行批處理。 pst.executeBatch(); pst.close(); } catch (SQLException e) { if (pst != null) { try { pst.close(); } catch (SQLException e1) { e1.printStackTrace(); } } e.printStackTrace(); } } //執(zhí)行預(yù)編譯語句,更新數(shù)據(jù)。 public static void ExecPreparedSQL(Connection conn) { PreparedStatement pstmt = null; try { pstmt = conn .prepareStatement("UPDATE customer_t1 SET c_customer_name = ? WHERE c_customer_sk = 1"); pstmt.setString(1, "new Data"); int rowcount = pstmt.executeUpdate(); pstmt.close(); } catch (SQLException e) { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e1) { e1.printStackTrace(); } } e.printStackTrace(); } }
//執(zhí)行存儲過程。
public static void ExecCallableSQL(Connection conn) {
CallableStatement cstmt = null;
try {
cstmt=conn.prepareCall("{? = CALL TESTPROC(?,?,?)}");
cstmt.setInt(2, 50);
cstmt.setInt(1, 20);
cstmt.setInt(3, 90);
cstmt.registerOutParameter(4, Types.INTEGER); //注冊out類型的參數(shù),類型為整型。
cstmt.execute();
int out = cstmt.getInt(4); //獲取out參數(shù)
System.out.println("The CallableStatment TESTPROC returns:"+out);
cstmt.close();
} catch (SQLException e) {
if (cstmt != null) {
try {
cstmt.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
}
}
/**
* 主程序,逐步調(diào)用各靜態(tài)方法。
* @param args
*/
public static void main(String[] args) {
//創(chuàng)建數(shù)據(jù)庫連接。
Connection conn = GetConnection("parker", "parker@123");
//創(chuàng)建表。
CreateTable(conn);
//批插數(shù)據(jù)。
BatchInsertData(conn);
//執(zhí)行預(yù)編譯語句,更新數(shù)據(jù)。
ExecPreparedSQL(conn);
//執(zhí)行存儲過程。
//ExecCallableSQL(conn);//這部分在運(yùn)行時(shí)有問題,直接注釋掉了
//關(guān)閉數(shù)據(jù)庫連接。
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
## 安裝中遇到的問題與解決過程<a name="section856721735711"></a>
- 初始化腳本失敗報(bào)錯(cuò)
<img src='./figures/a662d9a9a96b40d089a6d9c68788bf3d.png'>
<img src='./figures/dbc89373c5734638a51add74523f640c.png'>
- CentOS 上配置 JAVA
自帶的 java 路徑尋找:
<img src='./figures/480ae4bbdd664652af43663f061aae84.png'>
配置 CentOS 環(huán)境變量:
<img src='./figures/17fb09d479354307b7e2a8b27cbd2f7e.png'>
而后期驗(yàn)證 javac 時(shí)發(fā)現(xiàn) CentOS 其自帶的 java 僅有運(yùn)行環(huán)境,改用 windows 作為客戶端。
- 也可以自行下載 java 環(huán)境配置進(jìn)行解決配置:
<img src='./figures/05476910e9e44c9fb0723d26b0f467f4.png'>
- 數(shù)據(jù)庫連接問題
修改后 ip 未放行錯(cuò)誤
<img src='./figures/591c2725601c492cbccf312e9b2a7a11.png'>
放行 ip 命令\(在官方文檔客戶端接入驗(yàn)證處可以查詢\)如下
gs_guc set -N all -I all -h “host all parker?.../32 sha256”
```文章來源:http://www.zghlxwxcb.cn/news/detail-838226.html
具體的接入 ip 若不清楚可以通過報(bào)錯(cuò)信息或本地的 ipconfig 進(jìn)行查看文章來源地址http://www.zghlxwxcb.cn/news/detail-838226.html
到了這里,關(guān)于CentOs虛擬機(jī)下openGauss的配置使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!