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

如下

这里也可以开启openGauss的图形化页面,具体操作如下,这里没什么作用,但是对于不熟悉命令行的小伙伴应该更友好

yum install ukui yum groupinstall fonts -ysystemctl set-default graphical.targetreboot


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

接下来再看一下python的版本,如下

5. 设置字符集及环境变量
依次输入如下命令

cat >>/etc/profile<<EOF
export LANG=en_US.UTF‐8
EOF
-------------------------------------------命令分割线
cat >>/etc/profile<<EOF
export packagePath=/opt/software/openGauss
EOF
-------------------------------------------命令分割线
source /etc/profile


接着如下

cat >>/etc/profile<<EOF
export LD_LIBRARY_PATH=$packagePath/script/gspylib/clib:$LD_LIBRARY_PATH
EOF
----------------------------------------命令分割线
source /etc/profile


可以来验证一下结果是否正确

echo $LD_LIBRARY_PATH

若如下,则结果无问题

6. 对swap分区的设置

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=0echo 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=112640 &> /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/如下

安装依赖

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 ]; thenos_str=openeuler_x86_64


保存退出

开始编译第三方软件

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

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

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

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

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'


选择Release版本进行配置

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

开始编译

make -j

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

最后一步make install

软件安装路径为:$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环境变量

右击“此电脑”选择“属性”,点击“高级系统设置”。

点击“环境变量”,新建系统变量“JAVA_HOME”,输入JDK安装目录。

点击“环境变量”,新建系统变量“JAVA_HOME”,输入JDK安装目录

变量值填入jdk安装目录

编辑系统变量“path”。

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
新建系统变量“CLASSPATH”变量,输入“.”即可。

然后在打开windows powershell输入java --version,如果输出如下,则安装成功

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 = "123456";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");}
}

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

  1. Windows安装达梦数据库及初始化

    Windows安装达梦数据库 1.启动安装包: 2.选择语言与时区 3.开始安装 4.接受许可证协议: 5.版本信息及配置: 6.验证 Key 文件 7.选择安装类型(根据自己需要选择,我选择典型安装 ...

  2. Windows安装华为Mindspore,手把手操作,超级详细

    Windows安装华为Mindspore,手把手操作,超级详细 在base环境中,输入conda create -n mindspore python=3.7.5,创建一个新环境 conda crea ...

  3. 亚马逊计划明年推出云游戏服务,紧追微软谷歌;华为GaussDB数据库推出双分布式架构;腾讯擎天5G智慧灯杆助智慧城市服务升级……...

    戳蓝字"CSDN云计算"关注我们哦! 嗨,大家好,重磅君带来的[云重磅]特别栏目,如期而至,每周五第一时间为大家带来重磅新闻.把握技术风向标,了解行业应用与实践,就交给我重磅君吧! ...

  4. 基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机

    [原文链接]基于ARM架构openEuler系统通过qemu模拟器自动安装启动ARM架构的openEuler虚拟机 文章目录 一.基础准备工作 二.自动创建基于dhcp自动获取ip地址的openEul ...

  5. 华为开源数据库openGauss

    什么是openGauss openGauss是一款全面友好开放,携手伙伴共同打造的企业级开源关系型数据库.openGauss提供面向多核架构的极致性能.全链路的业务.数据安全.基于AI的调优和高效运维 ...

  6. windows安装达梦数据库

    前言 本章讲解达梦数据库服务器的安装及配置步骤.本章所讲解的主要针对dm8_20211025_x86_win_64_ent的安装 一.下载达梦8 X86安装包 从达梦官网下载对应的安装包(下载时需登录 ...

  7. windows 安装达梦数据库Python 报错:fatal error C1083: Cannot open include file: ‘DPI.h‘: No such file or direc

    报错: c:\dmdms program\drivers\python\dmpython\strct.h(18): fatal error C1083: Cannot open include fil ...

  8. Windows安装达梦数据库(Intel CPU)

    下载地址:https://eco.dameng.com/download 下载文件为:dm8_20221027_x86_win_64.iso. 使用压缩工具解压,解压之后如下所示: 双击setup.e ...

  9. 六、华为云数据库GaussDB(for openGauss)

    1.(判断题)GaussDB(for openGauss)数据库只能采用分布式架构进行部署. 错误 2.(单选题)GaussDB(for openGauss)开启三权分立后,以下哪个不是GaussDB ...

最新文章

  1. jQuery Mobile
  2. React-Router 源码分析1
  3. BusyBox编译配置
  4. cordova 某个页面强制横屏_小白科普:从输入网址到最后浏览器呈现页面内容,中间发生了什么?...
  5. 在ubuntu 12.04 x64下编译hadoop2.4
  6. 计算机组织与结构实验,计算机组织与结构实验报告 CQUPT
  7. 来啦~ C++学习建议和学习资料
  8. 搭建自己的博客(二十七):增加登录注册以及个人资料按钮
  9. c++ 如何获取移动硬盘型号信息_工程销售,如何高效快速获取项目信息
  10. python中的copy模块(浅复制和深复制)
  11. 360的IM可能会是什么样?
  12. 1004 成绩排名 (20 分)—PAT (Basic Level) Practice (中文)
  13. java creat sql,java 实体类 生成 create sql
  14. 面向对象编程(三)——程序执行过程中内存分析
  15. SeaWeedFS文件存储服务器搭建
  16. 《商业的本质》读书笔记
  17. Robomongo查询总条数
  18. 强力推荐素材收集和管理神器-Eagle工具
  19. 如何在Ubuntu 上安装SEP for Linux
  20. Unity3D 局部截图、全屏截图、带UI截图三种方法

热门文章

  1. 互联网及相关公司的求职经历分享
  2. 【Python 实战】---- 批量将图片转base64导出到excel中
  3. SAP采购计划协议计划数量小于收货或发票数量的案例分析
  4. 计算机系统采用终中断的目的是?
  5. 张晓飞ajax聊天室,张晓飞-华中师范大学数学学院中文站
  6. [2017.02.21-22] 《Haskell趣学指南 —— Learning You a Haskell for Great Good!》
  7. python百度、必应、搜狗根据关键字爬取图片
  8. 【解答】多台西门子PLC之间可不可以无线通讯
  9. lucene 中文 完全匹配不是top1
  10. 数据中台=大数据平台+数据资产管理平台+数据服务平台