RedHat编译安装openGauss
本文适用于openGauss2.0.0
环境:Red Hat Enterprise Linux Server 7.6
官方说明文档提示,openGauss仅支持以下操作系统:
- CentOS 7.6(x86架构)
- openEuler-20.03-LTS(aarch64架构)
编译脚本对此也是加了限制,监测到非上述平台时,将拒绝编译。经过试验,openGauss在Red Hat 7.6上是可以编译通过的。
一、官方参考
二、步骤
准备文件
假设文件路径全部在:/opt/openGauss/
准备以下文件:
修改脚本
默认情况下,编译脚本会检查编译平台的操作系统类型,Red Hat操作系统会被拒绝编译。需要修改一下脚本。
- snippet.bash
[yz@test openGauss-server]$ vim build/script/mpp_package.sh kernel="centos" #强制为centos
PS:最新版本脚本已经变更为:
src/get_PlatForm_str.sh
修改代码
openGauss 2.0版本有个bug:强制要求用户登录后修改密码,但是如果用户名中有“-”等特殊字符,语法会报错,无法修改密码,导致一方面无法修改密码,而又强制要求修改密码。以下修改一下,不强制要求修改密码:
- snippet.c
static void knl_t_postgres_init(knl_t_postgres_context* postgres_cxt) { postgres_cxt->clear_key_memory = false; …… postgres_cxt->password_changed = true; //此处由false改为true。
编译
以下编译debug版本:
- snippet.bash
[yz@test ~]$ cd /opt/openGauss/openGauss-server [yz@test openGauss-server]$ sh build.sh -m debug -3rd /opt/openGauss/binarylibs …… Makefile:71: warning: overriding recipe for target `../../../src/lib/elog/elog.a' Makefile:65: warning: ignoring old recipe for target `../../../src/lib/elog/elog.a' openGauss installation complete. The option 'nopkg' is on, no package will be zipped.
当看到“openGauss installation complete.”提示时,表示编译成功。
编译后,二进制文件在:
/opt/openGauss/openGauss-server/mppdbtempinstall
初始化
- snippet.bash
[yz@test ~]$ export LD_LIBRARY_PATH=/opt/openGauss/openGauss-server/mppdb_temp_install/lib/:$LD_LIBRARY_PATH [yz@test ~]$ cd /opt/openGauss/openGauss-server/mppdb_temp_install/bin [yz@test bin]$ ./gs_initdb -D /opt/openGauss/gauss_data/ --nodename=gauss …… Success. You can now start the database server of single node using: ./gaussdb -D /opt/openGauss/gauss_data or ./gs_ctl start -D /opt/openGauss/gauss_data -l logfile
启动与客户端连接
- snippet.bash
[yz@test ~]$ cd /opt/openGauss/openGauss-server/mppdb_temp_install/bin [yz@test bin]$ ./gs_ctl start -D /opt/openGauss/gauss_data -Z single_node -l logfile [yz@test bin]$ ./gsql postgres gsql ((openGauss 2.0.0 build 5af8c3d0) compiled at 2021-04-12 14:45:44 commit 0 last mr debug) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. postgres=#
加载
openGauss 1.0要求数据文件必须放到数据目录下的pg_copydir子目录中,openGauss 2.0已经无此约束要求,加载方法完全同PostgreSQL。
打赏作者以资鼓励: