CentOs虚拟机下openGauss的配置使用

这篇具有很好参考价值的文章主要介绍了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.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"/>
    
            <!--dbnode-->
            <PARAM name="dataNum" value="1"/>
            <PARAM name="dataPortBase" value="26000"/>
            <PARAM name="dataNode1" value="/gaussdb/data/db1"/>
            </DEVICE>
        </DEVICELIST>
    </ROOT>
    

    其中 ip 设置为之前的 ...,主机名为 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 {

    //创建数据库连接。
      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 < 3; i++) {
            //添加参数。
            pst.setInt(1, i);
            pst.setString(2, "data " + i);
            pst.addBatch();
          }
          //执行批处理。
          pst.executeBatch();
          pst.close();
        } catch (SQLException e) {
          if (pst != null) {
            try {
              pst.close();
            } catch (SQLException e1) {
            e1.printStackTrace();
            }
          }
          e.printStackTrace();
        }
      }
    
      //执行预编译语句,更新数据。
      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();
        }
      }
    
  //执行存储过程。
    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();
      }

    }

}


## 安装中遇到的问题与解决过程<a name="section856721735711"></a>

- 初始化脚本失败报错

  <img src='./figures/a662d9a9a96b40d089a6d9c68788bf3d.png'>

  <img src='./figures/dbc89373c5734638a51add74523f640c.png'>

- CentOS 上配置 JAVA

  自带的 java 路径寻找:

  <img src='./figures/480ae4bbdd664652af43663f061aae84.png'>

  配置 CentOS 环境变量:

  <img src='./figures/17fb09d479354307b7e2a8b27cbd2f7e.png'>

  而后期验证 javac 时发现 CentOS 其自带的 java 仅有运行环境,改用 windows 作为客户端。

- 也可以自行下载 java 环境配置进行解决配置:

  <img src='./figures/05476910e9e44c9fb0723d26b0f467f4.png'>

- 数据库连接问题

  修改后 ip 未放行错误

  <img src='./figures/591c2725601c492cbccf312e9b2a7a11.png'>

  放行 ip 命令\(在官方文档客户端接入验证处可以查询\)如下

gs_guc set -N all -I all -h “host all parker .../32 sha256”
```

具体的接入 ip 若不清楚可以通过报错信息或本地的 ipconfig 进行查看文章来源地址https://www.toymoban.com/news/detail-838226.html

到了这里,关于CentOs虚拟机下openGauss的配置使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux CentOS7虚拟机配置静态IP并允许上网的配置方法

    2023博客之星评选已开启--成为城市领跑者 当我们成功的将CentOS镜像安装到了我们的虚拟机上后,可是这个时候,虚拟机还没有配置IP信息,为了后面开发 方便,我们需要设置一个静态IP。 本地电脑,右键点击网络-选择\\\"更改适配器选项\\\" - 启用VMnet8。 打开Vmware虚拟机,本文以

    2024年02月07日
    浏览(74)
  • Linux(CentOS Stream 9) 虚拟机中配置静态 IP【图文详细教程】

    我们要为 Linux(CentOS Stream 9) 系统配置静态 IP,只需要对 Linux 系统使用的网卡对应的配置文件进行相应的修改即可 Linux 的配置文件一般放在 /etc 目录(etc 为 Linux 存放配置文件的目录)下,所以先进入 etc 目录 进入 etc 目录后,可以发现,在该目录下,存在 NetworkManager 目录(网

    2024年04月16日
    浏览(52)
  • 物理主机使用Wifi时虚拟机CentOS的网络配置-使用NAT方法

    打开虚拟机设置 选用NAT模式 打开WLAN的属性菜单,设置连接共享 配置VMNet 8网卡 打开网卡配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33 ,将ONBOOT 修改为yes,也就是启动网卡(这里要使用管理员权限打开 不然文件为只读) vim ctrl+o退出编辑模式 shift+;进入命令模式 使用wq!保存并

    2024年02月06日
    浏览(45)
  • Linux(CentOS)运维脚本工具集合

    备份指定目录 查看CPU、磁盘、内存使用率 返回结果 显示基础信息-详细 查看进程pid,启动时间,持续执行时间 根据进程id查看工作目录 清除Linux系统占用缓存 查看端口是否使用 demo: 查看进程使用的端口 demo 查看端口所在进程 demo 查看目录下各目录占用空间以及最大文件或

    2024年02月12日
    浏览(45)
  • 在MacOS上使用VMware虚拟机安装CentOS 7操作系统,并配置静态IP地址

    一、🔧前期工具准备 虚拟机VMware Fusion   --VMware12.1.0版本 Download VMware Fusion | VMware Fusion 12 Player and Fusion 12 Pro are the best way to run Windows on the Mac, and the ultimate development and testing utility. Discover why. https://www.vmware.com/products/fusion/fusion-evaluation.html CentOS 7 操作系统  Index of / https://vaul

    2024年02月07日
    浏览(63)
  • Linux运维实战:Centos7.6部署wingftpserver

    Wing FTP Server是一款优秀且高速的跨平台FTP服务器软件,对比Windows中自带的 FTP 服务器,它支持可伸缩的处理器架构并采用异步IO,在速度和效率方面遥遥领先于其他同类产品,稳定可靠, 高负载的同时也能持续地正常运行,在网络运维中它契合企业和学校的文件传输,除了基

    2024年01月20日
    浏览(62)
  • 虚拟机下Linux系统磁盘扩容

    在VM虚拟机中,我们经常会选择默认磁盘大小20G,用着用着才发现20G不够用,服务启动不了,就很尴尬,让我们今天一起来学习下,如何在虚拟机给磁盘扩容。 背景:我们使用 df -h 命令,发现磁盘使用率已经37%,我们给此磁盘扩容,简单演示下扩容的过程。 1:虚拟机关机,

    2024年02月06日
    浏览(43)
  • 【Linux】centos安装配置及远程连接工具的使用

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的

    2024年02月08日
    浏览(39)
  • 在虚拟机linux系统centos中安装oracle11gR2,并使用plsql工具连接使用数据库

    1.X工具,我使用的是Xftp,Xshell和Xmanager,也可以选用其他相同类型的工具 2.oracle安装包,我选用的是oracle11gR2,其他版本仅供参考 3.plsql工具 需要使用Xshell使虚拟机脸上Xmanager打开图形化界面,具体步骤如下: 1.打开虚拟机,登录 2.使用Xshell连接虚拟机         打开Xshell,创建

    2024年02月15日
    浏览(55)
  • Windows 11 下使用 VMWare Workstation 17 Pro 新建 CentOS Stream 9 64位 虚拟机 并配置网络

    博文目录 CentOS Linux 8: 已经过了 End-of-life (EOL) CentOS Linux 7: EOL Jun 30th, 2024 CentOS Stream 8: EOL May 31st, 2024 CentOS Stream 9: End of RHEL9 full support phase 对于个人来说, CentOS Linux 和 CentOS Stream 使用起来没有什么明显区别, 而用惯了 CentOS 再使用 Ubuntu 等会不太习惯, 还是 CentOS 系列用起来比较顺

    2024年02月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包