脚本

  • 新建一个/opt/onekey-build-og.sh文件,存入以下内容

    #!/bin/bash
    # 环境 centos 7.9 4C 8G  (配置越高编译越快,4G内存编译不了,磁盘大概需要14GB)
    # 安装一些依赖 (libaio-devel如果不卸载重装,可能会找不到io_context_t)
    yum remove libaio-devel libaio -y
    yum install -y git gmp  gmp-devel  mpfr  mpfr-devel  libmpc  libmpc-devel libaio libaio-devel flex bison ncurese-devel glibc-devel patch rehat-lsb-core readline-devel perl gcc gcc-c++
    
    # 新建一个用户
    useradd omm500
    
    # 创建目录
    mkdir /opt/omm500
    chown omm500 /opt/omm500 -R
    
    # 切换用户执行编译及安装
    chown omm500 install.sh
    chmod 777 install.sh
    su - omm500 -c "cd /opt && bash install.sh"
    
  • 新建一个/opt/install.sh文件,存入以下内容

    #!/bin/bash
    # 创建数据目录
    cd /opt/omm500
    mkdir data
    
    # 下载编译好的三方库并解压(这里下载的是Centos7.6_x86_64的版本,在7.6和7.9都能用)
    wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/5.0.0/binarylibs/openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz
    tar -xvf openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz
    
    # 克隆数据库源码仓
    git clone https://gitee.com/opengauss/openGauss-server -b 5.0.0
    
    # 配置环境变量(这里最核心的一点就是把gcc的默认路径改了,操作系统默认的版本太低)
    echo "export CODE_BASE=/opt/omm500/openGauss-server     # Path of the openGauss-server file " >> ~/.bashrc
    echo "export BINARYLIBS=/opt/omm500/openGauss-third_party_binarylibs_Centos7.6_x86_64    # Path of the binarylibs file " >> ~/.bashrc
    echo "export GAUSSHOME=\$CODE_BASE/dest/ " >> ~/.bashrc
    echo "export GCC_PATH=\$BINARYLIBS/buildtools/gcc7.3/ " >> ~/.bashrc
    echo "export CC=\$GCC_PATH/gcc/bin/gcc " >> ~/.bashrc
    echo "export CXX=\$GCC_PATH/gcc/bin/g++ " >> ~/.bashrc
    echo "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 " >> ~/.bashrc
    echo "export PATH=\$GAUSSHOME/bin:\$GCC_PATH/gcc/bin:\$PATH " >> ~/.bashrc
    echo "export PGDATA=/opt/omm500/data" >> ~/.bashrc
    echo "export PGPORT=5432" >> ~/.bashrc
    echo "export PGDATABASE=postgres" >> ~/.bashrc
    
    # 加载环境变量
    source ~/.bashrc
    
    # 进入源码目录
    cd $CODE_BASE
    
    # 编译server (这里就是openGauss提供的一键式编译脚本)
    sh build.sh -m release -3rd $BINARYLIBS
    
    # 文件夹改名 (原文档说会生成dest目录,但实际上是生成到了mppdb_temp_install,所以改个名)
    mv mppdb_temp_install dest 
    
    # 克隆插件仓,并复制到server源码目录内(必须单独编译,因为如果先放到server源码内,server都会编译不成功)
    git clone https://gitee.com/opengauss/Plugin -b 5.0.0
    cp Plugin/contrib/*  $CODE_BASE/contrib/ -r
    
    # 编译dolphin插件
    cd contrib/dolphin
    make install
    
    # 复制插件到编译好的server目录
    cp *.so $GAUSSHOME/lib/postgresql/ 
    cp *.control $GAUSSHOME/share/postgresql/extension/ 
    cp *.sql $GAUSSHOME/share/postgresql/extension/ 
    
    # 初始化数据库
    gs_initdb --nodename=primary --pwpasswd=Sinvie@123
    
    # 配置一些数据库参数
    echo "port=$PGPORT" >> $PGDATA/postgresql.conf
    echo "listen_addresses = '0.0.0.0'" >> $PGDATA/postgresql.conf
    echo "password_encryption_type = 0" >> $PGDATA/postgresql.conf
    echo "log_directory = 'pg_log'" >> $PGDATA/postgresql.conf
    echo "remote_read_mode=non_authentication" >> $PGDATA/postgresql.conf
    echo "host all all 0.0.0.0/0 md5" >> $PGDATA/pg_hba.conf
    
    # 启动数据库
    gs_ctl start 
    
    # 连接数据库并创建一个B库
    gsql -c "create database sioc_3_3 dbcompatibility='B'";
    
    # 开启一些mysql特性
    gsql -c "alter database sioc_3_3 set enable_set_variable_b_format = on;";
    gsql -c "alter database sioc_3_3 set dolphin.lower_case_table_names = 0;";
    gsql -c "alter database sioc_3_3 set dolphin.B_COMPATIBILITY_MODE = on;";
    gsql -c "alter system set  enable_dolphin_proto= on;";
    gsql -c "alter system set  dolphin_server_port=3306;";
    
    gs_ctl restart
    
  • 对onekey-build-og.sh 授权可执行

    chmod 777 onekey-build-og.sh
    
  • 然后执行这个sh文件(4C 8G 100M宽带 大约30分钟)

    ./onekey-build-og.sh
    

连接数据库

su - omm500
gsql -r -d sioc_3_3 -h 127.0.0.1 -U omm500 -W Sinvie@123

# 兼容group by不标准用法
alter database sioc_3_3 set dolphin.sql_mode = '';
  • 表名大小写敏感及反引号

    create table Test_123 (`a` int, `B` int ,"Ab" int);
    \d+ "Test_123"
    select * from Test_123;--不会报错
    select * from test_123;--会报错
    

创建一个新的数据库用户

su - omm500
# 重新使用初始化用户omm500登录
gsql -r -d sioc_3_3 -h 127.0.0.1 -U omm500 -W Sinvie@123
create user emt password 'Sinvie@123';
GRANT ALL PRIVILEGES TO emt;

服务器连接

gsql创建连接时,数据库默认设置会有5分钟超时时间。如果在这个时间内,数据库未正确地接受连接并对身份进行认证,gsql将超时退出。

这个时候重新连接

navicat连接

使用postgresql协议,端口号5432,用户emt,密码Sinvie@123

测试

自己拿MySQL的sql跑一跑

环境清理命令

su - omm500
gs_ctl stop
exit

userdel omm500
rm -rf /opt/omm500
rm -rf /home/omm500
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐