【openGauss】一键编译openGauss5.0+dolphin,体验新增的mysql兼容特性
本文参考:https://www.darkathena.top/archives/one-key-build-opengauss-and-dolphin。使用emt,密码:Sinvie@123,端口号5432,postgresql协议。新建一个/opt/onekey-build-og.sh文件,存入以下内容。新建一个/opt/install.sh文件,存入以下内容。对onekey-build-og
·
脚本
-
新建一个/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
更多推荐
已为社区贡献7条内容
所有评论(0)