暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

Mogdb单机安装中踩到的坑

原创 2022-08-29
2664

目录

一、前言

有时间,安装下mogdb这款数据库,在安装过程中,难免会遇到一些报错,导致安装不成功的情况,我把我在安装中遇到的一些问题,和大家分享出来,一方面是做个笔记,另一方面可以让其他小伙伴在遇到类似的问题,可以方便解决。
本文是基于centos7.9安装的mogdb3.0.1数据库

二、安装包(二进制)的下载

1、下载mogdb二进制安装包
下载地址:https://mogdb.io/downloads/mogdb/
image.png

image.png

说明:从图中可以看到,mogdb 3.0.1版本只支持centos 7的版本
centos 6.x的版本是不支持的(mogdb 2.0.3版本也支持centos7的版本)

注意:如果你的实验环境或生产环境是centos6.x、centos 8.x 和redhat 6.x redhat 8.x的版本,要重新安装操作系统。

下载完成,如下
image.png

三、配置安装环境

实验环境 ip地址 mogdb版本 安装方式
centos 7.9 10.201.0.221 3.0.1 单机

3.1、先创建目录

mkdir -p /opt/mogdb/software

通过xftp开始上传安装包
image.png

3.2、创建组和用户

创建组

groupadd dbgrp -g 2000

创建用户并指定用户的组为dbgrp

useradd omm -g 2000 -u 2000

给用户omm设置密码

passwd omm
qwe123
qwe123

设置密码也可以使用如下方式

echo "qwe123" | passwd --stdin omm

3.3、创建安装目录并修改目录权限

mkdir -p /opt/mogdb/data
chown -R omm:dbgrp /opt/mogdb

3.4、开始解压二进制安装包

修改安装包的用户和组,方便后面进行解压

chown omm:dbgrp MogDB-3.0.1-CentOS-x86_64.tar.gz

image.png
使用用户omm进行解压,解压到当前目录中

su - omm
cd /opt/mogdb/software
tar -xvf MogDB-3.0.1-CentOS-x86_64.tar.gz

我们发现解压出来的还是压缩包
image.png

这些压缩包还需要进一步解压到本地
下面是二种批量解压的方法

for tar in *.tar.gz; do tar xvf $tar; done

ls *.tar.gz|xargs -n1 tar xzvf

解压完成后,最终的目录内容是这样的
image.png

3.5、使用yum方式安装依赖包

yum install -y libaio-devel

3.6、设置环境变量

vi /home/omm/.bashrc
#家目录
export GAUSSHOME=/opt/mogdb/software 
export PATH=$GAUSSHOME/bin:$PAT
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH

使变量生效

source /home/omm/.bashrc

报错一
注意:下面是官方提供的添加环境变量的方法,但是这种添加环境变量是有问题的
echo “export GAUSSHOME=/opt/mogdb/software” >> /home/omm/.bashrc &&
echo "export PATH=GAUSSHOME/bin:GAUSSHOME/bin:PATH " >> /home/omm/.bashrc &&
echo “export LD_LIBRARY_PATH=GAUSSHOME/lib:GAUSSHOME/lib:LD_LIBRARY_PATH” >> /home/omm/.bashrc
image.png
我们发现里面的内容不是我们要求的内容。
而且在后面进行初始化数据库的过程种会报如下错误
bin/gs_initdb: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
image.png

4、开始初始化数据库

使用如下命令开始初始化数据库

pwd
/opt/mogdb/software

bin/gs_initdb --pgdata=/opt/mogdb/data --nodename=primary --pwpasswd=qwe123 --encoding=UTF-8 --locale=en_US.UTF-8

开始执行

[omm@localhost software]$ bin/gs_initdb --pgdata=/opt/mogdb/data --nodename=primary --pwpasswd=qwe123 --encoding=UTF-8 --locale=en_US.UTF-8
The files belonging to this database system will be owned by user "omm".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

fixing permissions on existing directory /opt/mogdb/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
Begin init undo subsystem meta.
[INIT UNDO] Init undo subsystem meta successfully.
creating template1 database in /opt/mogdb/data/base/1 ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
2022-08-29 02:52:11.237 [unknown] [unknown] localhost 140043335244032 0[0:0#0]  [BACKEND] WARNING:  macAddr is 10350/3565745836, sysidentifier is 678352008/4138495285, randomNum is 2177199413
ok
initializing pg_authid ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
passwd must contain at least eight characters \\这里报错
gs_initdb: removing contents of data directory "/opt/mogdb/data"

未安装成功

报错二
由于密码的问题报错
设置的密码为:pwpasswd=qwe123
passwd must contain at least eight characters
设置的密码为:pwpasswd=qwer1234
Password must contain at least three kinds of characters.
以上都是不符合密码要求,无法安装成功的

修改好密码后,继续安装

omm@master software]$ bin/gs_initdb --pgdata=/opt/mogdb/data --nodename=primary --pwpasswd=qwer@1234 --encoding=UTF-8 --locale=en_US.UTF-8
The files belonging to this database system will be owned by user "omm".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

fixing permissions on existing directory /opt/mogdb/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
Begin init undo subsystem meta.
[INIT UNDO] Init undo subsystem meta successfully.
creating template1 database in /opt/mogdb/data/base/1 ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
2022-08-29 03:25:47.655 [unknown] [unknown] localhost 140218595481856 0[0:0#0]  [BACKEND] WARNING:  macAddr is 10350/3565745836, sysidentifier is 678352008/4138468234, randomNum is 1256063882
ok
initializing pg_authid ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
setting password ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
initializing dependencies ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
loading PL/pgSQL server-side language ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
creating system views ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
creating performance views ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
loading system objects' descriptions ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
creating collations ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
creating conversions ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
creating dictionaries ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
setting privileges on built-in objects ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
initialize global configure for bucketmap length ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
creating information schema ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
loading foreign-data wrapper for distfs access ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
loading foreign-data wrapper for hdfs access ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
loading foreign-data wrapper for log access ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
loading hstore extension ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
loading foreign-data wrapper for MOT access ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
loading security plugin ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
update system tables ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
creating snapshots catalog ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
vacuuming database template1 ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
copying template1 to template0 ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
copying template1 to postgres ... The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
ok
freezing database template0 ... ok
freezing database template1 ... ok
freezing database postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run gs_initdb.

Success. You can now start the database server of single node using:

    bin/mogdb -D /opt/mogdb/data --single_node
or
    bin/gs_ctl start -D /opt/mogdb/data -Z single_node -l logfile

image.png
image.png
至此、安装成功

5、修改mogdb的配置文件,添加如下参数

vi /opt/mogdb/data/postgresql.conf
#端口使用26000
port=26000
#监听地址:不限制IP
listen_addresses = '0.0.0.0'
password_encryption_type = 0
log_directory = 'pg_log'
remote_read_mode=non_authentication
vi /opt/mogdb/data/pg_hba.conf
echo "host all all 0.0.0.0/0 md5

或者使用如下方式添加

echo "port=26000" >> /opt/mogdb/data/postgresql.conf
echo "listen_addresses = '0.0.0.0'" >> /opt/mogdb/data/postgresql.conf
echo "password_encryption_type = 0" >> /opt/mogdb/data/postgresql.conf
echo "log_directory = 'pg_log'" >> /opt/mogdb/data/postgresql.conf
echo "remote_read_mode=non_authentication" >> /opt/mogdb/data/postgresql.conf
echo "host all all 0.0.0.0/0 md5" >> /opt/mogdb/data/pg_hba.conf

6、开始启动数据库

gs_ctl start -D /opt/mogdb/data

[omm@master software]$ gs_ctl start -D /opt/mogdb/data
[2022-08-29 03:30:53.313][58788][][gs_ctl]: gs_ctl started,datadir is /opt/mogdb/data 
[2022-08-29 03:30:53.467][58788][][gs_ctl]: waiting for server to start...
.0 LOG:  [Alarm Module]can not read GAUSS_WARNING_TYPE env.

0 LOG:  [Alarm Module]Host Name: master 

0 LOG:  [Alarm Module]Host IP: 10.201.0.221 

0 LOG:  [Alarm Module]Get ENV GS_CLUSTER_NAME failed!

0 WARNING:  failed to open feature control file, please check whether it exists: FileName=gaussdb.version, Errno=2, Errmessage=No such file or directory.
0 WARNING:  failed to parse feature control file: gaussdb.version.
0 WARNING:  Failed to load the product control file, so gaussdb cannot distinguish product version.
The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
2022-08-29 03:30:53.870 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  when starting as multi_standby mode, we couldn't support data replicaton.
gaussdb.state does not exist, and skipt setting since it is optional.2022-08-29 03:30:53.962 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  [Alarm Module]can not read GAUSS_WARNING_TYPE env.

2022-08-29 03:30:53.962 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  [Alarm Module]Host Name: master 

2022-08-29 03:30:53.962 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  [Alarm Module]Host IP: 10.201.0.221 

2022-08-29 03:30:53.962 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  [Alarm Module]Get ENV GS_CLUSTER_NAME failed!

2022-08-29 03:30:54.307 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  loaded library "security_plugin"
2022-08-29 03:30:54.311 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] WARNING:  could not create any HA TCP/IP sockets
2022-08-29 03:30:54.311 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] WARNING:  could not create any HA TCP/IP sockets
2022-08-29 03:30:54.476 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] WARNING:  No explicit IP is configured for listen_addresses GUC.
2022-08-29 03:30:54.477 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  InitNuma numaNodeNum: 1 numa_distribute_mode: none inheritThreadPool: 0.
2022-08-29 03:30:54.478 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  reserved memory for backend threads is: 220 MB
2022-08-29 03:30:54.478 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  reserved memory for WAL buffers is: 128 MB
2022-08-29 03:30:54.478 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  Set max backend reserve memory is: 348 MB, max dynamic memory is: 11064 MB
2022-08-29 03:30:54.478 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  shared memory 363 Mbytes, memory context 11412 Mbytes, max process memory 12288 Mbytes
2022-08-29 03:30:54.554 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [CACHE] LOG:  set data cache  size(402653184)
2022-08-29 03:30:54.576 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [CACHE] LOG:  set metadata cache  size(134217728)
2022-08-29 03:30:54.661 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [SEGMENT_PAGE] LOG:  Segment-page constants: DF_MAP_SIZE: 8156, DF_MAP_BIT_CNT: 65248, DF_MAP_GROUP_EXTENTS: 4175872, IPBLOCK_SIZE: 8168, EXTENTS_PER_IPBLOCK: 1021, IPBLOCK_GROUP_SIZE: 4090, BMT_HEADER_LEVEL0_TOTAL_PAGES: 8323072, BktMapEntryNumberPerBlock: 2038, BktMapBlockNumber: 25, BktBitMaxMapCnt: 512
2022-08-29 03:30:54.714 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  mogdb: fsync file "/opt/mogdb/data/gaussdb.state.temp" success
2022-08-29 03:30:54.714 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  create gaussdb state file success: db state(STARTING_STATE), server mode(Normal), connection index(1)
2022-08-29 03:30:54.738 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  max_safe_fds = 976, usable_fds = 1000, already_open = 14
The core dump path from /proc/sys/kernel/core_pattern is an invalid directory:|/usr/libexec/
2022-08-29 03:30:54.742 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  user configure file is not found, it will be created.
2022-08-29 03:30:54.754 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  the configure file /opt/mogdb/software/etc/gscgroup_omm.cfg doesn't exist or the size of configure file has changed. Please create it by root user!
2022-08-29 03:30:54.754 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [BACKEND] LOG:  Failed to parse cgroup config file.
2022-08-29 03:30:54.777 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [EXECUTOR] WARNING:  Failed to obtain environment value $GAUSSLOG!
2022-08-29 03:30:54.777 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [EXECUTOR] DETAIL:  N/A
2022-08-29 03:30:54.777 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [EXECUTOR] CAUSE:  Incorrect environment value.
2022-08-29 03:30:54.777 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [EXECUTOR] ACTION:  Please refer to backend log for more details.
2022-08-29 03:30:54.778 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [EXECUTOR] WARNING:  Failed to obtain environment value $GAUSSLOG!
2022-08-29 03:30:54.778 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [EXECUTOR] DETAIL:  N/A
2022-08-29 03:30:54.778 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [EXECUTOR] CAUSE:  Incorrect environment value.
2022-08-29 03:30:54.778 [unknown] [unknown] localhost 139670608431360 0[0:0#0]  0 [EXECUTOR] ACTION:  Please refer to backend log for more details.
.
[2022-08-29 03:30:55.801][58788][][gs_ctl]:  done
[2022-08-29 03:30:55.802][58788][][gs_ctl]: server started (/opt/mogdb/data)
[omm@master software]$ 

image.png
启动成功

7、开始登录数据库

直接执行gsql,发现如下错误

[omm@master bin]$ gsql
gsql: FATAL:  database "omm" does not exist

使用postgres库登录

[omm@master bin]$ gsql -d postgres
gsql ((MogDB 3.0.1 build 1a363ea9) compiled at 2022-08-05 17:31:04 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
MogDB=#

登录成功。

8、错误总结

  • 错误一、环境变量未配置好
    error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

报错一
注意:下面是官方提供的添加环境变量的方法,但是这种添加环境变量是有问题的
echo “export GAUSSHOME=/opt/mogdb/software” >> /home/omm/.bashrc &&
echo "export PATH=GAUSSHOME/bin:GAUSSHOME/bin:PATH " >> /home/omm/.bashrc &&
echo “export LD_LIBRARY_PATH=GAUSSHOME/lib:GAUSSHOME/lib:LD_LIBRARY_PATH” >> /home/omm/.bashrc
image.png
我们发现里面的内容不是我们要求的内容。
而且在后面进行初始化数据库的过程种会报如下错误
bin/gs_initdb: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
image.png

  • 错误二、密码不符合要求
    passwd must contain at least eight characters
    Password must contain at least three kinds of characters.

报错二
由于密码的问题报错
设置的密码为:pwpasswd=qwe123
passwd must contain at least eight characters
设置的密码为:pwpasswd=qwer1234
Password must contain at least three kinds of characters.
以上都是不符合密码要求,无法安装成功的

  • 错误三、登录时未指定库

[omm@master bin]$ gsql
gsql: FATAL: database “omm” does not exist
使用postgres库登录
[omm@master bin]$ gsql -d postgres

最后修改时间:2022-08-29 18:22:12
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论