在CentOS中使用OM方式安装MogDB(openGauss)并使用Navicat进行连接

文章详细介绍了如何在CentOS7上安装MogDB企业版,包括系统环境准备、依赖安装、Python3.6的编译安装、OM安装配置、数据库初始化和状态检查。此外,还讲述了使用Navicat进行远程数据库连接的步骤,包括创建新用户、修改连接加密方式和密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 关于MogDB

MogDB是EnMotech openGauss DataBase Enterprise Edition的缩写,是云和恩墨基于openGauss开源数据库进行定制、推出的企业发行版。它将围绕高可用、安全、自动化运维、数据库一体机和SQL审核优化等企业需求,解决企业用户落地。其核心价值是易用性、高性能、高可用等和全天候的企业支持。
官网文档:https://docs.mogdb.io/zh/mogdb/v3.1/installation-overview
MogDB的安装方式有:容器化安装、PTK安装、OM安装和手动安装,后两种都是离线安装,这里记录OM安装的过程。

2 装备工作

2.1 准备系统环境

目前MogDB仅支持在Linux系统中运行,所以我使用CentOS 7来进行安装。

2.2 关闭防火墙

systemctl disable firewalld.service
systemctl stop firewalld.service
setenforce=0
sed -i '/^SELINUX=/c'SELINUX=disabled /etc/selinux/config

2.3 检查CPU是否支持指令集

检查CPU是否支持指令集rdtscp和bmi2
执行命令:

lscpu | grep rdtscp
lscpu | grep bmi2

会显示支持的指令集:
在这里插入图片描述
虚拟机缺少指令集得解决方法:
在这里插入图片描述

2.4 安装依赖

yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel libxml2-devel patch redhat-lsb-core unzip gcc gcc-c++ perl openssl-devel libffi-devel libtool zlib-devel

2.5 安装Python3.6

wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
mkdir -p /usr/local/python3
tar -zxvf Python-3.6.5.tgz
cd Python-3.6.5
./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC && make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

3 开始OM安装

3.1 安装包准备

创建目录存放目录:

mkdir -p /opt/software
chmod 755 -R /opt/software

安装包下载:https://www.mogdb.io/downloads/allDownload。
下载安装包:
在这里插入图片描述
上传到服务器的/opt/software目录中。

3.2 解压安装包

在/opt/software中进行解压

tar -xvf MogDB-3.1.0-CentOS-x86_64.tar.gz
cp -r MogDB-3.1.0-CentOS-x86_64/* /opt/software/
rm -rf MogDB-3.1.0-CentOS-x86_64
tar -xvf MogDB-3.1.0-CentOS-64bit-om.tar.gz

3.3 准备安装配置文件

创建配置文件:

vi /opt/software/MogDB-3.1.0-CentOS-64bit-om/clusterconfig.xml

内容:

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <!-- MogDB整体信息 -->
    <CLUSTER>
        <!-- 数据库名称 -->
        <PARAM name="clusterName" value="dbCluster" />
        <!-- 数据库节点名称(hostname) -->
        <PARAM name="nodeNames" value="node1_hostname" />
        <!-- 数据库安装目录-->
        <PARAM name="gaussdbAppPath" value="/opt/mogdb/install/app" />
        <!-- 日志目录-->
        <PARAM name="gaussdbLogPath" value="/var/log/omm" />
        <!-- 临时文件目录-->
        <PARAM name="tmpMppdbPath" value="/opt/mogdb/tmp" />
        <!-- 数据库工具目录-->
        <PARAM name="gaussdbToolPath" value="/opt/mogdb/install/om" />
        <!-- 数据库core文件目录-->
        <PARAM name="corePath" value="/opt/mogdb/corefile" />
        <!-- 节点IP,与数据库节点名称列表一一对应 -->
        <PARAM name="backIp1s" value="172.18.59.243"/>
    </CLUSTER>
    <!-- 每台服务器上的节点部署信息 -->
    <DEVICELIST>
        <!-- 节点1上的部署信息 -->
        <DEVICE sn="node1_hostname">
            <!-- 节点1的主机名称 -->
            <PARAM name="name" value="node1_hostname"/>
            <!-- 节点1所在的AZ及AZ优先级 -->
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <PARAM name="backIp1" value="172.18.59.243"/>
            <PARAM name="sshIp1" value="172.18.59.243"/>

            <!--dbnode-->
            <PARAM name="dataNum" value="1"/>
            <PARAM name="dataPortBase" value="15400"/>
            <PARAM name="dataNode1" value="/opt/mogdb/install/data/dn"/>
            <PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>
    </DEVICELIST>
</ROOT>

3.4 修改hostname

保证系统host name和配置文件中的“name”节点的值一致

<PARAM name="name" value="node1_hostname"/>

修改host name

vi /etc/hostname

将里面的内容改为“node1_hostname”,然后重启系统

3.5 确保openssl版本正确

为确保openssl版本正确,执行预安装前请加载安装包中lib库。执行命令如下,其中{packagePath}为用户安装包放置的路径,本示例中为/opt/software/MogDB-3.1.0-CentOS-64bit-om

export LD_LIBRARY_PATH={packagePath}/script/gspylib/clib:$LD_LIBRARY_PATH

3.6 初始化脚本

/opt/software/MogDB-3.1.0-CentOS-64bit-om/script/gs_preinstall -U omm -G dbgrp -X /opt/software/MogDB-3.1.0-CentOS-64bit-om/clusterconfig.xml

出现报错:

python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

需要复制py安装路径下的libpython3.6m.so.1.0到系统lib中:

cp /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64/

然后重新初始化脚本。
最后显示如下,则成功:

Successfully set finish flag.
Preinstallation succeeded.

运行过程中会创建omm用户,输入yes,然后输入相关密码,需保证复杂度要求,密码应包括大小写、字符、数字,例如Enmo@123。

3.7 执行安装

修改安装目录下lib及script文件夹的用户以及用户组:

chown -R omm:dbgrp /opt/software/MogDB-3.1.0-CentOS-64bit-om/lib
chown -R omm:dbgrp /opt/software/MogDB-3.1.0-CentOS-64bit-om/script
su - omm
gs_install -X /opt/software/MogDB-3.1.0-CentOS-64bit-om/clusterconfig.xml --gsinit-parameter="--locale=en_US.UTF-8" --gsinit-parameter="--encoding=UTF-8"

在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。

出现如下提示则安装成功:

Check consistence of memCheck and coresCheck on database nodes.
Configuring pg_hba on all nodes.
Configuration is completed.
Successfully started cluster.
Successfully installed application.
end deploy…

3.8 查看数据库状态并登录

查看状态:

gs_om -t status
[omm@node1_hostname ~]$ gs_om -t status
-----------------------------------------------------------------------

cluster_name    : dbCluster
cluster_state   : Normal
redistributing  : No

-----------------------------------------------------------------------

"cluster_state "显示"Normal"表示数据库可正常使用。
登录数据库:

gsql -d postgres -p 15400 -r
[omm@node1_hostname ~]$ gsql -d postgres -p 15400 -r
gsql ((MogDB 3.1.0 build 3ddb00f7) compiled at 2022-12-28 22:27:13 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

MogDB=#

完成安装。

4 使用Navicat进行远程连接数据库

4.1 新建远程连接用户

以操作系统用户omm登录数据库主节点
查看数据库详细信息
登录数据库,并在数据库中使用如下语句建立"dbTest"用户(注意用户名大小写无效,全部小写):

postgres=# CREATE USER dbtest PASSWORD 'Test@123';
CREATE ROLE
postgres=# \q

然后允许dbtest进行远程连接(允许IP地址为172.16.0.245的客户端访问本机):

gs_guc set -N all -I all -h "host all dbTest 172.16.0.245/24 sha256"
  1. -N all表示MogDB的所有主机。
  2. -I all表示主机的所有实例。
  3. -h 表示指定需要在"pg_hba.conf"增加的语句。
  4. all 表示允许客户端连接到任意的数据库。
  5. dbtest 表示连接数据库的用户。
  6. 172.16.0.245/24表示只允许IP地址为172.16.0.245的主机连接。此处的IP地址不能为MogDB内的IP,在使用过程中,请根据用户的网络进行配置修改。24表示子网掩码为1的位数,即255.255.255.0。
  7. sha256表示连接时jack用户的密码使用sha256算法加密。
  8. 这条命令在数据库主节点实例对应的"pg_hba.conf"文件中添加了一条规则,用于对连接数据库主节点的客户端进行鉴定。

4.2 进行连接

直接使用Navicat进行连接:
在这里插入图片描述
在这里插入图片描述
测试连接,报错:
在这里插入图片描述
因为Navicat不支持sha256加密方式,只有使用md5。

4.3 修改加密方式为md5

先修改连接策略文件

vi /opt/mogdb/install/data/dn/pg_hba.conf

找到如下内容:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
host    all             omm             172.18.59.243/32        trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             172.18.59.243/24        sha256
host    all             dbtest          172.18.59.198/24        sha256

将其中的sha256都改为md5。
然后修改密码加密类型:

[omm@node1_hostname ~]$ gs_guc reload -N all -I all -c 'password_encryption_type=0'
#检查配置是否生效 
[omm@node1_hostname ~]$ grep encry /opt/mogdb/install/data/dn/postgresql.conf
password_encryption_type = 0	#Password storage type, 0 is md5 for PG, 1 is sha256 + md5, 2 is sha256 only 
#最保险的方法还是登录数据库show一下参数值: 
MogDB=# show password_encryption_type; 
password_encryption_type  
-------------------------- 
0 
(1 row) 

4.4 修改用户dbtest的密码

MogDB=# alter user dbtest password 'Test@666';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
ALTER ROLE
MogDB=# select rolpassword from pg_authid where rolname='dbtest';
             rolpassword
-------------------------------------
 md545ef1188d000415856e28906ed530cf3
(1 row)

MogDB=#

在本地测试连接:

[omm@node1_hostname ~]$ gsql -U dbtest -W Test@666 -h 172.18.59.243 -p 15400 -d postgres
gsql ((MogDB 3.1.0 build 3ddb00f7) compiled at 2022-12-28 22:27:13 commit 0 last mr  )
SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
Type "help" for help.

MogDB=>

然后再使用Navicat连接,成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值