SHO酱的Blog

SHO酱的Blog

瀚高数据库安装与部署

190
2023-07-13

为什么是瀚高数据库

因为在项目过程中,尤其是给某些政企单位开发系统时,现在都对系统和工具的国产化有要求,美其名曰“信创”(信息技术应用创新);

正在进行国产数据库选型,目前看到的有阿里的OceanBase和瀚高,都声明全面兼容MySQL。

获取安装文件

在瀚高的官方网站(https://www.highgo.com/)上可以下载企业版和申请试用安全版;经过询问安全版和企业版的区别在于安全版符合信创产品要求,并针对等保要求有相应支持。

安装过程

安装过程根据瀚高的官方文档操作基本问题不大(https://docs.highgo.com/depManual/)。

但有一点需要注意,有一点需要注意,有一点需要注意!

瀚高数据库的MySQL兼容模式与OceanBase不同,

OceanBase安装并配置后,可以跟MySQL完全一样使用,可以使用Navicat等数据库管理工具直接按照MySQL连接方式连接和管理;

但瀚高MySQL兼容模式仅是语法和函数贴近MySQL的使用方法,但连接方式与MySQL不同,要么使用瀚高自己的管理工具,

如果使用Navicat则需要按照postgreSQL的连接方式连接,且需要在初始化数据库的时候注意加密配置。

rpm -ivh hgdb-see-4.5.8-fe4791c.x86_64.rpm

数据库初始化

安装瀚高数据库后,进入/opt/highgo/hgdb-see-4.5.8/etc,执行脚本laststep.sh初始化数据库。

[root@localhost etc]# ./laststep.sh 
是否按照默认值初始化一个数据库实例?(yes/no/exit)(默认yes)no
您正在自定义初始化一个数据库实例,请按照如下提示输入信息
是否initdb?((yes/no)默认:是)
请输入DATA目录(请使用绝对路径,默认为/opt/highgo/hgdb-see-4.5.8/data)
请输入管理员的密码tYDQD8C1hpdwjSe!
请确认密码tYDQD8C1hpdwjSe!
输入本地连接的认证方式,可选项有sm3/md5/scram-sha-256(默认为sm3)md5
是否启用全库加密?((yes/no)默认是)no
是否使用推荐的本地连接访问设置?((yes/no)默认是)no
请输入未使用的端口号(默认5866)
是否使用推荐的常用数据库参数配置?((yes/no)默认是)
是否启用安全参数配置?((yes/no)默认否)
是否启用oracle兼容,((yes/no)默认否)
是否开启归档,((yes/no)默认否)
是否开启审计功能,((yes/no)默认否)
是否将数据库服务配置为开机自启动,((yes/no)默认是)
配置完毕后是否启动数据库,((yes/no)默认是)
是initdb
DATA目录=/opt/highgo/hgdb-see-4.5.8/data
管理员密码为tYDQD8C1hpdwjSe!
本地连接的认证方式为md5
不启用全库加密
不使用推荐的本地连接访问设置
端口号为5866
使用推荐的常用数据库参数配置
不启用安全参数配置
不启用oracle兼容
不开启归档
不开启审计功能
将数据库服务配置为开机自启动
配置完毕后启动数据库
确认配置是否正确,((yes/no)默认是)
/opt/highgo/hgdb-see-4.5.8/bin/initdb -A md5 -D /opt/highgo/hgdb-see-4.5.8/data --pwfile=/tmp/.default_passwd
属于此数据库系统的文件宿主为用户 "root".
此用户也必须为服务器进程的宿主.
数据库簇将使用本地化语言 "zh_CN.UTF-8"进行初始化.
默认的数据库编码已经相应的设置为 "UTF8".
initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8"
缺省的文本搜索配置将会被设置到"simple"

禁止为数据页生成校验和.
Data encryption is disabled.

创建目录 /opt/highgo/hgdb-see-4.5.8/data ... 成功
正在创建子目录 ... 成功
选择动态共享内存实现 ......posix
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 128MB
selecting default time zone ... Asia/Shanghai
创建配置文件 ... 成功
正在运行自举脚本 ...2023-07-13 14:16:02.056 CST [24491] 日志:  Switchover the SSHA Role. Current is NONE
成功
正在执行自举后初始化 ...2023-07-13 14:16:02.148 CST [24493] 日志:  Switchover the SSHA Role. Current is NONE
成功
同步数据到磁盘...成功

Success. You can now start the database server using:

    hg_sslkeygen.sh /opt/highgo/hgdb-see-4.5.8/data
    /opt/highgo/hgdb-see-4.5.8/bin/pg_ctl -D /opt/highgo/hgdb-see-4.5.8/data -l 日志文件 start

/opt/highgo/hgdb-see-4.5.8/bin/hg_sslkeygen.sh /opt/highgo/hgdb-see-4.5.8/data
Setting the ssl configuration to /opt/highgo/hgdb-see-4.5.8/data
Generating RSA private key, 2048 bit long modulus
..........................................................................................+++
................+++
e is 65537 (0x10001)
等待服务器进程启动 ....2023-07-13 14:16:03.380 CST [24519] 日志:  正在启动 HighGo Security Enterprise Edition Database System 4.5.8 on x86_64,build on 20220708
2023-07-13 14:16:03.381 CST [24519] 日志:  正在监听IPv6地址"::1",端口 5866
2023-07-13 14:16:03.381 CST [24519] 日志:  正在监听IPv4地址"127.0.0.1",端口 5866
2023-07-13 14:16:03.383 CST [24519] 日志:  在Unix套接字 "/tmp/.s.PGSQL.5866"上侦听
2023-07-13 14:16:03.417 CST [24519] 日志:  日志输出重定向到日志收集进程
2023-07-13 14:16:03.417 CST [24519] 提示:  后续的日志输出将出现在目录 "hgdb_log"中.
 完成
服务器进程已经启动
/opt/highgo/hgdb-see-4.5.8/bin/psql -U syssso -d highgo -f /tmp/.secure_param.sql -p 5866
注意:  
-------------------------------------------
Login User: syssso 
Login time: 2023-07-13 14:16:03.480634+08 
Login Address: [local] 
Last Login Status: SUCCESS 
Login Failures: 0 
Valied Until: 2023-07-20 14:16:02+08 
-------------------------------------------

        set_secure_param         
---------------------------------
 set configuration successfully.
(1 行记录)

        set_secure_param         
---------------------------------
 set configuration successfully.
(1 行记录)

        set_secure_param         
---------------------------------
 set configuration successfully.
(1 行记录)

        set_secure_param         
---------------------------------
 set configuration successfully.
(1 行记录)

        set_secure_param         
---------------------------------
 set configuration successfully.
(1 行记录)

/opt/highgo/hgdb-see-4.5.8/bin/psql -U syssao -d highgo -f /tmp/.audit_param.sql -p 5866
注意:  
-------------------------------------------
Login User: syssao 
Login time: 2023-07-13 14:16:03.487584+08 
Login Address: [local] 
Last Login Status: SUCCESS 
Login Failures: 0 
Valied Until: 2023-07-20 14:16:02+08 
-------------------------------------------

         set_audit_param         
---------------------------------
 set configuration successfully.
(1 行记录)

/opt/highgo/hgdb-see-4.5.8/bin/pg_ctl start -D /opt/highgo/hgdb-see-4.5.8/data
等待服务器进程启动 ....2023-07-13 14:16:03.644 CST [24593] 日志:  正在启动 HighGo Security Enterprise Edition Database System 4.5.8 on x86_64,build on 20220708
2023-07-13 14:16:03.644 CST [24593] 日志:  正在监听IPv6地址"::1",端口 5866
2023-07-13 14:16:03.644 CST [24593] 日志:  正在监听IPv4地址"127.0.0.1",端口 5866
2023-07-13 14:16:03.647 CST [24593] 日志:  在Unix套接字 "/tmp/.s.PGSQL.5866"上侦听
2023-07-13 14:16:03.682 CST [24593] 日志:  日志输出重定向到日志收集进程
2023-07-13 14:16:03.682 CST [24593] 提示:  后续的日志输出将出现在目录 "hgdb_log"中.
 完成
服务器进程已经启动

上面的配置过程中要注意输入本地连接的认证方式,可选项有sm3/md5/scram-sha-256(默认为sm3)md5这行,如果要使用PostgreSQL连接方式连接数据库服务,这里需要选择“md5”认证方式,否则将无法连接。

之后,注意看最后的服务启动日志,初始化数据库服务监听的是127.0.0.1,这样在其他的机器上是无法方式数据库服务的,需要修改配置文件并重启服务。

配置

  • 停止服务

    pg_ctl stop -D /opt/highgo/hgdb-see-4.5.8/data
  • 修改文件

    cd /opt/highgo/hgdb-see-4.5.8/data
    vi postgresql.conf

    文件中查找 listen_addresses,按照如下内容修改。

    listen_addresses = '*'
    # 原为 listen_addresses = 'localhost'
  • 修改文件

    cd /opt/highgo/hgdb-see-4.5.8/data
    vi pg_hba.conf

    拉到文件的最下面

    # "local" is for Unix domain socket connections only
    local   all             all                                     md5
    # IPv4 local connections:
    host    all             all             0.0.0.0/0            md5 # 原为 127.0.0.1/1
    hostnossl all           all             0.0.0.0/0            md5
    hostssl all             all             0.0.0.0/0            cert # 原为 ::1/128
    # IPv6 local connections:
    host    all             all             ::/128                 md5
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    local   replication     all                                     md5
    host    replication     all             0.0.0.0/0            md5
    host    replication     all             ::/128                 md5
    
  • 启动服务

    pg_ctl start -D /opt/highgo/hgdb-see-4.5.8/data
  • 开放数据库使用端口(或停用防火墙)

    firewall-cmd --add-port=5866/tcp #临时添加5866端口
    firewall-cmd --permanent --add-port=5866/tcp #永久添加5866端口
    firewall-cmd --reload #重载生效