行业知识
CentOs虚拟机下openGauss的配置使用
CentOs 虚拟机下 opengauss 的配置使用
环境说明
虚���机平台 VMware
服务器端 CentOS 7.9
本机系统 Windows 10
部署版本 OpenGauss 1.1.0
安装详细步骤
-
虚拟机 VMware
本机已配置,该部分省略
-
CentOS 7.9 安装
下载镜像源 CentOS-7-x86_64-DVD-2009.iso
-
虚拟机中选中镜像进行安装
-
设置
内存设置为 2GB
处理器设置为 2
网络默认即可
声卡和打印机不使用直接进行了移除
启动后进入系统安装,注意的点如下:
-
分区
选择系统-安装位置-手动分区进行分区如下:
-
网络和主机名
选择系统-网络和主机名进行设置如下:
记录 ip 和主机名,之后配置需要用到
ip ***.***.***.***主机名 db1
-
软件选择
选择软件-软件选择设置如下:
-
用户设置
上述设置完成后点击开始安装,该期间根据提示完成用户设置即可
安装完成进行重启,登录系统完成安装
-
上网测试
-
修改操作系统版本(CentOS 7.6 可省略)
通过
vi /etc/redhat-releas 打开编辑文件,修改内容如下(请使用 su root 切换至 root 用户进行操作)
-
关闭防火墙
执行以下命令关闭防火墙
systemctl stop firewalld.servicesystemctl 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 编辑以下内容
其中 ip 设置为之前的 ...,主机名为 db1,如下:
-
解压安装包
-
解压后查看并修改文件权限
-
执行初始化脚本
cd /opt/software/openGauss/scriptpython 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 {
//创建数据库连接。 public static Connection GetConnection(String username, String passwd) { String driver = "org.postgresql.Driver"; String sourceURL = "jdbc:postgresql://***.***.***.***:26000/postgres"; Connection conn = null; try { //加载数据库驱动。 Class.forName(driver).newInstance(); } catch (Exception e) { e.printStackTrace(); return null; } try { //创建数据库连接。 conn = DriverManager.getConnection(sourceURL, username, passwd); System.out.println("Connection succeed!"); } catch (Exception e) { e.printStackTrace(); return null; } return conn; }; //执行普通SQL语句,创建customer_t1表。 public static void CreateTable(Connection conn) { Statement stmt = null; try { stmt = conn.createStatement(); //执行普通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(); } } //执行预处理语句,批量插入数据。 public static void BatchInsertData(Connection conn) { PreparedStatement pst = null; try { //生成预处理语句。 pst = conn.prepareStatement("INSERT INTO customer_t1 VALUES (?,?)"); for (int i = 0; i//执行存储过程。 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类型的参数,类型为整型。 cstmt.execute(); int out = cstmt.getInt(4); //获取out参数 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(); } } /** * 主程序,逐步调用各静态方法。 * @param args */ public static void main(String[] args) { //创建数据库连接。 Connection conn = GetConnection("parker", "parker@123"); //创建表。 CreateTable(conn); //批插数据。 BatchInsertData(conn); //执行预编译语句,更新数据。 ExecPreparedSQL(conn); //执行存储过程。 //ExecCallableSQL(conn);//这部分在运行时有问题,直接注释掉了 //关闭数据库连接。 try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } }}
## 安装中遇到的问题与解决过程- 初始化脚本失败报错 - CentOS 上配置 JAVA 自带的 java 路径寻找: 配置 CentOS 环境变量: 而后期验证 javac 时发现 CentOS 其自带的 java 仅有运行环境,改用 windows 作为客户端。- 也可以自行下载 java 环境配置进行解决配置: - 数据库连接问题 修改后 ip 未放行错误 放行 ip 命令\(在官方文档客户端接入验证处可以查询\)如下
gs_guc set -N all -I all -h “host all parker .../32 sha256”
```
具体的接入 ip 若不清楚可以通过报错信息或本地的 ipconfig 进行查看
-
-
-