【参赛作品14】Windows安装华为openGauss数据库——openGauss基于x86架构openEuler虚拟机的编译以及JDBC的连接

【参赛作品14】Windows安装华为openGauss数据库——openGauss基于x86架构openEuler虚拟机的编译以及JDBC的连接1 Hype V 虚拟机安装 openEuler 虚拟机平台有很多 像 vmware Hype V VirtualBox 等等 考虑到与 wsl2 的兼容 这里选用 Hype V 来安装 x86 架构的 openEuler 开启 hype v 虚拟机下载 x86 架构 openEuler 镜像打开 openEuler 官网 我们这里打算使用 openEuler 20 03 LTS 长期支持版依次打开 openEuler 20 03 LTS ISO x86 64 选择 openEuler 20 03 LTS x86 64 dvd iso 进

1、Hype-V虚拟机安装openEuler

虚拟机平台有很多,像vmwareHype-VVirtualBox等等,考虑到与wsl2的兼容,这里选用Hype-V来安装x86架构的openEuler

  1. 开启 hype-v虚拟机
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述






  2. 下载x86架构openEuler镜像
    打开openEuler官网,我们这里打算使用openEuler-20.03-LTS长期支持版
    依次打开openEuler-20.03-LTS-ISO-x86-64,选择openEuler-20.03-LTS-x86_64-dvd.iso)进行下载
    在这里插入图片描述






  3. 打开Hyper-V,这里配置镜像流程不再累赘
    在这里插入图片描述

  4. 配置完成后,就可以进入安装系统的页面了这里选择Install openEuler就好
    在这里插入图片描述

  5. 这里进入到我们非常熟悉的类似与centOS的安装页面,按照步骤安装就行
    在这里插入图片描述

  6. 这里我们打算直接用root用户登录,设置一下root密码就行,不需要创建用户了,这里等待安装好就行,安装完成后会提示你重启,这里先关键,拔掉镜像(DVD驱动设置为无,不让会进入安装页面)后启动
    在这里插入图片描述
    在这里插入图片描述




  7. OK这里启动成功,输入一下root账号和密码,便可以成功进入openEuler页面了,这里没有图像画页面只有命令行(精简的openEuler系统应该大部分人都喜欢吧,实在不行可以安装图像画页面但是不建议)
    在这里插入图片描述

2、openEuler虚拟系统的配置(支持图形化)

  1. 首先添加一下软件源,官方提供的openEuler镜像(20.03版本)是没有自带软件源的,这里yum -install是没有任何东西的
    step1:cd /etc/yum.repos.d/
    step2:sudo vi openEuler_x86_64.repo
    step3:在最下方添加如下代码






[base] name=base baseurl=https://repo.openeuler.org/openEuler-20.03-LTS/OS/x86_64/ enabled=1 gpgcheck=0 

step4:退出vim,逐行键入如下命令

yum repolist all sudo yum-config-manager --enable base 

在这里插入图片描述
如果你的openEuler版本或平台不同,做相应的更改即可。至此yum应该已经可以正常使用了。

  1. 利用windows powershell连接hype-v,并关闭防火墙,键入如下命令
yum install -y net-tools yum install -y vim 

然后查看一下ip,ifconfig
在这里插入图片描述
我们可以打开Windows powershell,操作如下
命令ssh root@(ifconfig网卡的地址)输入一下密码就行了,这里也可以配置密钥进行免密连接,具体不再说了,这里也可以用xshell之类的工具进行连接,不连接都行,怎么方便怎么来
在这里插入图片描述
接下来我们关闭虚拟机防火墙,为了后续端口的开放方便,但是在服务器上不建议这么做










systemctl stop firewalld.service systemctl disable firewalld.service 
yum install ukui yum groupinstall fonts -y systemctl set-default graphical.target reboot 

在这里插入图片描述
3. 接下来我们准备openGauss的安装依赖,键入如下命令

yum install libaio-devel ncurses-devel pam-devel libffi-devel libtool readline-devel zlib-devel python3-devel autoconf flex gcc gcc-c++ patch byacc bison -y 

在这里插入图片描述
4. 修改一下python的版本,
首先看一下python的版本
在这里插入图片描述
请将Python默认版本指向Python 3.x,具体操作如下:








rm -rf /usr/bin/python ln -s /usr/bin/python3.7 /usr/bin/python 
cat >>/etc/profile< 
  
    >/etc/profile< 
    
  

在这里插入图片描述
接着如下

cat >>/etc/profile< 
  

在这里插入图片描述
可以来验证一下结果是否正确

echo $LD_LIBRARY_PATH 
linux系统会用内存做很 多的buffer和cache,所以经常会看到内存用完了,其实这里面可能只有很少的一部分是程序用到的。当内存不足的时候,系统有两种选择,一是减少缓存的量,另一种是把部分程序使用的内存换到swap中。如果是openGauss使用的内存被转移到swap中了,会对性能有很大的影响,所以应该尽量保持 openGauss使用的部分在内存中不被转移出去。 

一般mysql可以使用memlock启动mysql是mysqld保持在内存中,不过使用这个选项需要以 root运行服务器,在openGuass上还没有用过。

还可以使用关闭swap,可以使用swapoff或者umount分区,不过当内存不够大的时候(比如只有1G)系统不太稳定,可能 会导致openGauss内存不足出错。

也可以设置系统变量vm.swappiness,修改 /etc/sysctl.conf 添加 vm.swappiness = 0,并执行 sysctl -p 或 sysctl -w vm.swappiness=0。这个变量的范围是0至100,默认值60,当内存不足时,此变量的值小则系统偏向于减少缓存,反之则转移程序内存到 swap。但即使将它设为0了,系统仍然有可能使用swap。

一般来说,数据库和能够自带缓存的程序,都不希望系统把内存页置换出去。最简单的“阻止”swap的策略是修改系统参数,参考:

sysctl -w vm.swappiness=0 echo 1>/proc/sys/vm/drop_caches 第一条语句是建议系统不要使用swap, 第二条语句是让系统清理cache,以便释放更多内存。但第一条并不能够绝对阻止swap(因为只是建议)。 这里我们采用最粗暴简单的方法,关闭swap交换内存 
 [root@db1 ~]# swapoff -a 
  1. 接下来我们调整系统参数
[root@db1 ~]# vi /etc/profile.d/performance.sh 

如图,按i进入编辑模式,用#注释掉sysctl -w vm.min_free_kbytes= &> /dev/null,按Esc后:wq保存退出。
在这里插入图片描述
8. 接下来下载源到/etc/yum.repos.d/openEuler_x86_64.repo
输入命令






curl -o /etc/yum.repos.d/openEuler_x86_64.repo https://mirrors.huaweicloud.com/repository/conf/openeuler_x86_64.repo 

在这里插入图片描述
再输入

cat /etc/yum.repos.d/openEuler_x86_64.repo 
yum install libaio* -y yum install libnsl* -y 

3、openEuler虚拟机安装openGauss

这里使用opengauss:1.0.1版本进行配置安装,下载地址如下,可以下载完成传到openEuler,也可以直接通过wget下载

https://gitee.com/opengauss/openGauss-server/repository/archive/v1.0.1

https://gitee.com/opengauss/openGauss-server/repository/archive/v1.0.1

还需要下载gcc-8.2.0,低版本opengauss不支持gcc-7*

http://mirror.koddos.net/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz

下载完成后,全部放入/root/目录下,即cd /root/如下
image.png
安装依赖




 
 
yum install zlib-devel python3-devel autoconf flex gcc gcc-c++ patch byacc bison -y

gcc拷贝到/root/openGauss-third_party/buildtools/gcc/

 
 
cp gcc-releases-gcc-8.2.0.tar.gz /root/openGauss-third_party/buildtools/gcc/

当前openGauss官方支持ARM架构的openEuler,这里支持x86架构的openEuler需要修改get_PlatForm_str.sh文件。

 
 
cd /root/openGauss-third_party/build/ vi get_PlatForm_str.sh

添加这样一行

 
 
elif [ "$os_name"x = "openEuler"x -a "$cpu_arc"x = "x86_64"x ]; then os_str=openeuler_x86_64

image.png
保存退出

开始编译第三方软件

 
 
sh build_all.sh 若报错:You should download gcc-8.2.0.tar.gz or gcc-8.2.0.zip and put it in /root/openGauss-third_party/build/../buildtools/gcc/如下解决 cd /root/openGauss-third_party/buildtools/ mv gcc-releases-gcc-8.2.0.tar.gz gcc-8.2.0.tar.gz cd /root/openGauss-third_party/build/ 再重新执行命令 

用户执行以上命令之后,可以自动生成数据库编译所需的开源第三方软件,如果想单独的生成某个开源三方软件,可以进入对应的目录,执行build.sh脚本,如/root/openGauss-third_party/dependency/。最终编译构建出的结果会存放在openGauss-third_party同级的binarylibs目录。这些文件会在后面编译openGauss-server时用到。

PS:这一步需要好几长时间,我已经哭晕在厕所

编译好后如图所示image.png
接下来我们设置环境变量

 
 
cd/root/ vi bashrc 

在最底下加上下面这些,千万别错,一失足成千古恨

export CODE_BASE=/root/openGauss-server # Path of the openGauss-server file export BINARYLIBS=$CODE_BASE/../binarylibs # Path of the binarylibs file export GAUSSHOME=/opt/opengauss/ export GCC_PATH=$BINARYLIBS/buildtools/openeuler_x86_64/gcc8.2 export CC=$GCC_PATH/gcc/bin/gcc export CXX=$GCC_PATH/gcc/bin/g++ export LD_LIBRARY_PATH=$GAUSSHOME/lib:$GCC_PATH/gcc/lib64:$GCC_PATH/isl/lib:$GCC_PATH/mpc/lib/:$GCC_PATH/mpfr/lib/:$GCC_PATH/gmp/lib/:$LD_LIBRARY_PATH export PATH=$GAUSSHOME/bin:$GCC_PATH/gcc/bin:$PATH 

最后再更新一下环境变量

 
 
source bashrc

设置Makefile

当前openGauss官方支持ARM架构的openEuler,这里支持x86架构的openEuler需要修改Makefile文件。

 
 
cd openGauss-server vi ./src/gausskernel/Makefile

修改内容如下图所示,将绿色部分插入如下内容

 
 
else ifeq( $(PLAT_FORM_STR), openeuler_x86_64) cp '$(LIBCURL_LIB PATH)/libcurl.so.4.6.0' '$(DESTDIR)$(libdir)/libcurl.so.4.6.0'

image.png
选择Release版本进行配置

 
 
./configure --gcc-version=8.2.0 CC=g++ CFLAGS="-O2 -g3" --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-thread-safety --enable-thread-safety

开始编译

 
 
make -j

image.png

看到上述截图中的结果表明编译成功。

最后一步make install
image.png
软件安装路径为:$GAUSSHOME




二进制放置路径为:$GAUSSHOME/bin

这样便在x86的openEuler虚拟机中可以使用openGauss了

启动openGauss服务直接使用

 
 
gs_om -t start

连接数据库使用

 
 
sudo gsql

连接进入数据库,可以修改数据库的端口号,用户和密码

4、JDBC的使用编写与连接

  1. 下载JDK。

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

这里安装JDK-8的开源版本尚可

  • 配置jdk环境变量

2.jdbc连接的编写

这里使用`idea`工具插入数据库和连接数据库不再累赘,看jdbc的主要代码

import java.sql.*; public class GaussDBMySQLDemo { static final String JDBC_DRIVER = "org.postgresql.Driver"; static final String DB_URL = "jdbc:postgresql://你的虚拟机IP地址:你的数据库占用端口号/要连接的数据库"; // 数据库的用户名与密码,需要根据自己的设置 static final String USER = "root"; static final String PASS = ""; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ // 注册 JDBC 驱动 Class.forName(JDBC_DRIVER); // 打开链接 System.out.println("connecting..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //实例化对象 stmt = conn.createStatement(); // 执行查询 String sql; sql = "SELECT id, name, url FROM websites"; ResultSet rs = stmt.executeQuery(sql); // 创建表 sql = "CREATE TABLE COMPANY1 " + "(ID INT PRIMARY KEY NOT NULL," + " NAME TEXT NOT NULL, " + " AGE INT NOT NULL, " + " ADDRESS CHAR(50), " + " SALARY REAL)"; rs = stmt.executeQuery(sql); 关闭脚本文件 stmt.close(); // 结束连接 c.close(); } catch ( Exception e ) { System.err.println( e.getClass().getName()+": "+ e.getMessage() ); System.exit(0); } System.out.println("Table created successfully"); } } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210605.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:17
下一篇 2026年3月19日 上午7:17


相关推荐

  • Project interpreter not specified(eclipse+pydev)

    Project interpreter not specified(eclipse+pydev)

    2021年12月9日
    56
  • 执行游戏时出现0xc000007b错误的解决方法

    执行游戏时出现0xc000007b错误的解决方法

    2021年12月10日
    42
  • 汽车FMCW毫米波雷达信号处理流程

    汽车FMCW毫米波雷达信号处理流程毫米波雷达信号处理的作用是 通过发射 接收信号 获得目标径向距离 径向速度 径向角度 RCS 等目标属性信息 主要包括 AD 采样 RangeFFT DopplerFFT Non coherentComb CFAR DOAEstimatio 等步骤

    2026年3月26日
    1
  • python后端开发面试题及答案_web后端面试题

    python后端开发面试题及答案_web后端面试题2020年ajax面试题及答案(最新)2020年阿贾克斯面试问答最新,Ajax作为一种创建更好、更快、更具交互性的Web应用的技术,目前越来越受到大家的重视,所以提前掌握ajax面试题知识点有助于求职成功;与此同时,作为著名编程雷php拥有最受欢迎的ajax面试问题在包括和雷php知识总结了2020年最热门最全面的ajax面试问题,供大家参考!ajax面试题汇总ajax基础面试题1.《经典的20道…

    2022年8月28日
    4
  • html相对定位和绝对定位

    html相对定位和绝对定位相对定位 该元素相对于自己原有位置 偏移一定距离 相对的是自己 绝对定位 该元素相对于其父元素 偏移一定距离 相对的是父元素 重点是这个父元素也需要是设置了 position 属性 从最近的父元素开始找 直到找到 body 位置为止 nbsp 1 相对定位 lt divid test gt lt pclass p1 gt 相对定位 相对于自己原来的位置

    2026年3月19日
    2
  • 桶式排序

    桶式排序桶式排序有限个数字 m 每个数字的大小都在 1 与 n 之间 则我们可以假设有 n 个桶 遍历 m 个数字 将其存入对应的桶中 如数字的值为 3 就存入 3 号桶 桶的值对应存入数字的个数桶号 12345 计数 11201 我们按照桶的序号将数字倒出来 如下 桶的倒出顺序数字队列 5 号桶倒出 1 个 554 号桶倒出 0 个 453

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号