CentOS 上安装KingbaseES(ISO包)详细教程

CentOS 上安装KingbaseES(ISO包)详细教程

引言

KingbaseES(金仓数据库)属于国产主流数据库运作系统,其具有较高的适配性,安全性与可用性,被全面应用在政务,金融,能源等重要领域,本文将拿 CentOS 7.9 服务器做例子,按照官方 ISO 安装包,从“准备工作”过渡到“安装完毕后的验证”,详细阐述三种安装方法(图形界面,命令行,静默模式)的整个过程,文章语言平易近人,比较适合初学者入门,而且能够为企业部署供应一定的参照。

文章目录

一、安装前准备工作

在着手安装之前,要开展硬件核查,系统设置以及用户创建这些基本工作,防止由于环境不符合要求而引发安装失败的情况发生。

1.1 硬件要求确认

KingbaseES存在针对硬件的最低标准,对于采用CentOS 7.9的服务器而言,其应当具备如下设置(建议超出最低标准以防止出现性能瓶颈)

在这里插入图片描述

要知道,如果硬件不符合要求(比如 /tmp 空间不够),就要先释放一些资源(像清除 /tmp 下面没用的文件),或者升级硬件,要不然安装的时候就会出错

1.2 系统版本与参数确认

1.2.1 确认CentOS 版本

首先确保服务器系统,执行以下命令验证:

# 查看系统版本,显示“CentOS Linux release 7.9.2009 (Core)”cat /etc/redhat-release 
在这里插入图片描述

若版本过低,需先升级或重装系统(KingbaseES支持CentOS 7.5-7.9、8.0-8.5,本文以7.9为例)。

1.2.2 关闭应用保护

CentOS 7.9默认也许会启动SELinux或者防火墙,它们有可能会拦截安装程序,所以建议暂时关闭它们(安装完毕之后可以按照需求重新开启)

# 如果要临时关闭SELinux,那么在重启之后就会失效,想要永久关闭它就得要去修改 /etc/selinux/config 文件 setenforce 0# 要是打算暂时关闭防火墙的话,同样也是重启之后就会失效,要想做到永久关闭就得运行systemctl disable firewalld 这个命令。 systemctl stop firewalld 
在这里插入图片描述
1.2.3 系统参数优化(可选,推荐)

KingbaseES提供一键优化脚本,不过在安装之前可以预先核查一些关键参数(比如文件句柄数),从而规避日后出现警告

# 查看文件句柄数限制时,其默认值应不低于655360cat /etc/security/limits.conf |grep nofile # 如果不够的话,就可以暂且设置它(要是想让它永久有效就得去修改前面提到的limits.conf文件)ulimit -n 655360

1.3 安装用户创建(非常重要)

KingbaseES 不准用 root 用户直接执行安装操作,要创建专门的用户(比如 kingbase),具体步骤请参考后续内容

# 1. 创建kingbase用户(UID设为2000,可以自己修改)useradd -u 2000 kingbase # 2. 设置kingbase用户密码(输入两次,密码尽量复杂些)passwd kingbase # 3. 验证创建用户是否成功id kingbase # 应显示uid=2000(kingbase) gid=2000(kingbase)
在这里插入图片描述

1.4 安装目录与数据目录创建

要预先创建好安装目录,默认为/opt/Kingbase/ES/V9,还要创建数据目录,此目录用于存放数据库文件,并且要把权限赋予kingbase用户

# 1. 用root用户创建默认安装目录mkdir -p /opt/Kingbase/ES/V9 # 2. 赋予kingbase用户读写执行权限chown -R kingbase:kingbase /opt/Kingbase chmod -R 755 /opt/Kingbase # 3. (可选)创建独立数据目录(推荐与安装目录分离,如/data/kingbase)mkdir -p /data/kingbase chown -R kingbase:kingbase /data/kingbase chmod -R 755 /data/kingbase 

1.5 ISO安装包准备与校验

1.5.1 下载ISO包

从金仓官网(http://www.kingbase.com.cn/)获取ISO包,本文以KingbaseES_V009R001C010_Lin64_install.iso为例。

KingbaseES安装包可以通过以下渠道获取:
官方渠道:访问官方下载渠道

如下图所示,可以选择下载版本,本次要下载的是最新兼容版V9R1C10

在这里插入图片描述


然后选择安装包
如下图所示,选择X64_Linux版本

在这里插入图片描述
1.5.2 上传ISO包到服务器

用工具(如Xshell、WinSCP)将ISO包上传到CentOS 7.9的/opt/software目录(需先创建该目录):

# 用root用户创建软件存放目录mkdir -p /opt/software # 上传后,查看文件是否存在ls -l /opt/software 
在这里插入图片描述
1.5.3 校验ISO包完整性(避免文件损坏)

官方会提供ISO包的MD5/SHA1值,需校验确保文件完整:

# 计算ISO包的MD5值 md5sum /opt/software/KingbaseES_V009R001C010B0004_Lin64_install.iso # 计算ISO包的SHA1值 sha1sum /opt/software/KingbaseES_V009R001C010B0004_Lin64_install.iso 

将计算结果与官方提供的校验值对比

在这里插入图片描述

在刚刚的下载页面查看MD5值和SHA1值

在这里插入图片描述
在这里插入图片描述

一致则文件正常;不一致需重新下载。

二、ISO包挂载(必做步骤)

ISO包要经过挂载才可执行安装脚本,其步骤如下,请以root用户来执行:

# 1. 创建挂载目录(如/opt/software/KingbaseESV9)mkdir -p /opt/software/KingbaseESV9 # 2. 挂载ISO包到挂载目录mount /opt/software/KingbaseES_V009R001C010_Lin64_install.iso /opt/software/KingbaseESV9 # 3. 验证挂载是否成功(应显示setup.sh和setup目录)ls -l /opt/software/KingbaseESV9 
在这里插入图片描述

注意:挂载之后,目录会变成只读状态,如果想要修改像静默安装所对应的“silent.cfg”这样的设置文件时,一定要事先把它复制到别的目录里面才行

三、三种安装方式详细步骤

KingbaseES在CentOS 7.9中包含三种安装方式,分别是图形化安装命令行安装以及静默安装
其中图形化安装适合存在界面的服务器,命令行安装适合没有界面的服务器,静默安装则适合大批量部署场景,下面将针对这三种安装方式进行详细介绍。

3.1 图形化安装(适合新手)

图形化安装依靠可视化界面执行操作,其步骤较为明晰,很适合初次使用KingbaseES的用户

3.1.1 设置图形化环境

如果服务器具备图形界面(比如 GNOME),就直接切换成 kingbase 用户,要是服务器属于无界面类型,则必要经由 VNC 或 Xmanager 建立联系,并且要保证图形转发功能运行正常。

3.1.2 启动图形化安装脚本
# 1. 切换到kingbase用户(必须!)su - kingbase # 2. 进入ISO挂载目录cd /opt/software/KingbaseESV9 # 3. 启动图形化安装脚本(-i swing指定图形界面)sh setup.sh -i swing 

执行后会弹出安装向导窗口,按以下步骤操作:

3.1.3安装向导步骤如下:
  1. 选择安装类型
    首次安装时,请选择“安装新实例”,然后点击“下一步”。如果已有安装,则可选择“修改现存实例”来增减组件。
  2. 接受许可协议
    接受许可协议:勾选“我接受许可协议条款”,未勾选时“下一步”为灰色,点击“下一步”。

选择授权文件
官方授权文件获取👉点击链接
或者在刚刚的安装包下载界面,点击授权文件

在这里插入图片描述
KingbaseES数据库存在开发版,标准版,专业版以及企业版这四种版本,它们依照版本定位有所区别,从数据库初次启动之日算起。 开发版:时长限制为365天 标准版、专业版、企业版:时长限制为90天 
在这里插入图片描述

根据需要选择相应的授权文件,这里选择开发版,点击开发版-365天进行下载

将刚刚下载好的授权文件添加

  1. 选择安装路径
    • 默认路径为/opt/Kingbase/ES/V9(这与前面创建的目录相同),
    • 如果想要自定义,则点击“浏览”来选择别的目录(要保证kingbase用户具备读写权限),之后再点击“下一步”。
  2. 选择安装集
    给出三个安装集,按需求挑选:
    • 完全安装:其中含数据库服务器,高可用组件,开发工具(KStudio),迁移工具(KDTS)等,建议新手选用;
    • 服务器安装:只安装数据库服务器,合适只需数据库服务的情况;
  3. 选择功能组件(只有定制安装才需执行此步骤)
    如果选择了“定制安装”,就要勾选想要的功能组件,比如“数据库服务器”或者“数据库迁移工具”,然后点击“下一步”。
  4. 安装预览
    安装预览环节要查看安装目录,组件列表以及磁盘空间情况(确保“可用空间≥所需空间”),确认无误后再点击“安装”。
  5. 等待安装完成
    等待安装结束时,安装过程会有进度显示,比如“解压数据库服务器”“设置组件”等,耗时大约5到10分钟(这与硬件性能相关),在此期间请不要停止安装。
  6. 创建快捷方式
    • 需选定用户范围,其选项为“当前用户”或者“所有用户”,其中“当前用户”仅 kingbase 可见,“所有用户”则为服务器上全体用户所见
    • 程序组名默认为“KingbaseESV009R001”,也可自行修改,之后点击“下一步”。
  7. 安装完成
    安装完毕时,若出现“恭喜您!安装完成”的提示,表明安装过程已结束,此时可以选择是否要“初始化数据库”(此步骤为可选,日后仍可执行人工操作来执行初始化),选定之后,点击“完成”即可退出当前向导界面。

定制安装:可自行选定组件(譬如只安装服务器 + 迁移工具),适合进阶用户。 选定之后点击“下一步”。

在这里插入图片描述

3.2 命令行安装(无界面服务器推荐)

若服务器无图形界面(如生产环境服务器),可通过命令行安装,全程通过文字交互操作。

3.2.1 启动命令行安装脚本
# 1. 切换到kingbase用户su - kingbase # 2. 进入ISO挂载目录cd /opt/software/KingbaseESV9 # 3. 启动命令行安装(-i console指定命令行模式)sh setup.sh -i console 
在这里插入图片描述
3.2.2 命令行交互步骤
  1. 接受许可协议
    • 连续按“空格”翻页阅读协议,直到末尾;
  2. 选择授权文件
    • 将刚刚下载好的授权文件,输入文件绝对路径(如/opt/llicense_V009R001C-开发版.dat),按Enter;
    • 若无,直接按Enter(使用试用版授权)。
  3. 选择安装路径
    • 直接按Enter使用默认路径(/opt/Kingbase/ES/V9);
  4. 选择安装集
    • 输入1(完全安装,默认),2(服务器安装)或者3(定制安装),然后按Enter键。
  5. 创建快捷方式
    • 按下Y键来创建(这是默认设置),然后按Enter键
    • 输入1选取“当前用户”(这也是默认选项),或者输入2选取“全部用户”,之后再按Enter键

安装完成
提示“恭喜您!安装完成”,按Enter退出命令行。

在这里插入图片描述

程序组名默认为“KingbaseESV009R001”,只需直接按Enter键即可。

在这里插入图片描述

等待安装完成
屏幕会随时显示安装进程(比如“Processing package: Server (4/9) ”),安装完毕后会提示“创建快捷方式”。

在这里插入图片描述

安装预览
查看安装目录、组件、磁盘空间,确认无误后输入N开始安装。

在这里插入图片描述

如果选择了3(定制安装),就要进一步选定组件:输入+数字来增加组件(比如输入+4就增加数据库服务器),把要增加的多个组件用空格隔开,等全部选定之后再输入N进入下一步。

在这里插入图片描述

若自定义,输入绝对路径(如/home/kingbase/kdb),按Enter。

在这里插入图片描述

输入1接受协议(输入2拒绝,3重新查看),按Enter。

在这里插入图片描述


在这里插入图片描述

3.3 静默安装(批量部署推荐)

静默安装依靠配置文件自动运行,不需要人工参与交互,很合适在众多服务器上实施批量部署。

3.3.1 复制静默配置文件并执行修改

ISO挂载目录中的setup/silent.cfg属于模板文件,为只读性质,应当首先将其复制到可写目录(譬如/home/kingbase)之后才实施修改操作

# 1. 切换到kingbase用户su - kingbase # 2. 复制silent.cfg到/home/kingbasecp /opt/software/KingbaseESV9/setup/silent.cfg /home/kingbase # 3. 编辑配置文件(用vi或nano)vi /home/kingbase/silent.cfg 
3.3.2 关键参数说明与配置

配置文件参数如下(需根据实际情况修改,注释可删除):

# 1. 安装目录(必须指定,绝对路径,分隔符用/) INSTALL_PATH=/opt/Kingbase/ES/V9 # 2. 授权文件路径(可选,无则用试用版) LICENSE_PATH=/opt/license.dat # 3. 安装组件(多组件用逗号分隔,大小写不敏感,错误组件会忽略) # 可选组件:Server(服务器)、Interface(接口)、KingbaseHA(高可用)、KStudio(开发工具)、KDTS(迁移工具)、DeployTool(部署工具) COMPONENTS=Server,Interface,KStudio,KDTS # 4. 是否创建快捷方式(yes/no,默认yes) CREATE_SHORTCUT=yes # 5. 快捷方式用户范围(1=当前用户,2=所有用户,默认1) SHORTCUT_USER=1 # 6. 快捷方式程序组名(默认KingbaseESV009R001) SHORTCUT_GROUP_NAME=KingbaseESV009R001 

修改后保存退出(vi编辑器按Esc,输入:wq)。

3.3.3 启动静默安装
# 进入ISO挂载目录cd /opt/software/KingbaseESV9 # 执行静默安装(-f指定配置文件路径)sh setup.sh -i silent -f /home/kingbase/silent.cfg 

注意:静默安装无实时进度,需等待5-10分钟,可通过查看日志确认进度:

tail -f /opt/Kingbase/ES/V9/install/Logs/KES_install.log 

当日志显示“安装完成”时,说明安装成功。

四、安装后检查(确认安装有效性)

安装完成后,需通过以下步骤验证数据库是否正常:

4.1 查看安装日志

日志文件记录安装全过程,若安装失败可通过日志定位问题:

# 切换到kingbase用户su - kingbase # 查看安装日志(末尾若有“Install success”说明成功)cat /opt/Kingbase/ES/V9/install/Logs/KES_install.log |grep -i success 

4.2 检查数据库版本

# 进入数据库二进制文件目录cd /opt/Kingbase/ES/V9/Server/bin # 查看版本(应显示KingbaseES V009R001C010...) ./kingbase -V 
在这里插入图片描述

4.3 启动并检查数据库服务

若安装时未勾选“初始化数据库”,需先初始化数据目录,再启动服务:

# 1. 初始化数据目录(-D指定数据目录,-U指定管理员用户system) ./initdb -D /data/kingbase -U system -W # 执行后会提示输入system用户密码(如Kingbase@2024),重复输入确认# 2. 启动数据库服务 ./sys_ctl -D /data/kingbase start # 3. 检查服务状态(显示“server is running”说明正常) ./sys_ctl -D /data/kingbase status 
在这里插入图片描述

4.4 连接数据库验证

通过ksql工具(KingbaseES自带)连接数据库,确认可正常操作:

# 连接数据库(-U指定用户,-d指定默认数据库test,-p指定端口54321) ./ksql -U system -d test -p 54321# 输入密码后,若显示“test=#”,说明连接成功# 执行SQL查询版本(应返回KingbaseES版本信息)select version();# 退出连接:输入\q,按Enter

五、常见问题与解决方法

  1. 挂载ISO时提示“mount: /dev/loop0 is write-protected, mounting read-only”
    这是正常提示,ISO包默认只读挂载,无需处理。

启动数据库时提示“permission denied”
原因:数据目录权限不足,重新赋予kingbase用户权限:

chown -R kingbase:kingbase /data/kingbase chmod -R 755 /data/kingbase 

安装时提示“/tmp空间不足”
解决方案:删除/tmp下无用文件,或临时挂载更大空间到/tmp

# 用root用户执行,将/opt/tmp挂载到/tmp(需先创建/opt/tmp)mkdir -p /opt/tmp mount --bind /opt/tmp /tmp 

结语

本文详细讲解了在CentOS 7.9上通过ISO包安装KingbaseES的三种方式,从准备工作到安装后验证,覆盖了新手可能遇到的所有关键步骤。KingbaseES作为国产数据库的佼佼者,其安装流程与主流数据库(如PostgreSQL)相似,掌握本文方法后,也可快速上手其他版本的安装。

若在安装过程中遇到其他问题,可参考金仓官方文档中心(http://help.kingbase.com.cn/)或拨打技术支持热线400-601-1188。希望本文能帮助更多用户了解和使用国产数据库,为国产化替代贡献一份力量!

Read more

鸿蒙金融理财全栈项目——生态合作、用户运营、数据变现优化

鸿蒙金融理财全栈项目——生态合作、用户运营、数据变现优化

《鸿蒙APP开发从入门到精通》第24篇:鸿蒙金融理财全栈项目——生态合作、用户运营、数据变现优化 🚀🤝📈 内容承接与核心价值 这是《鸿蒙APP开发从入门到精通》的第24篇——生态合作、用户运营、数据变现优化篇,100%承接第23篇的性能优化、安全加固优化、合规审计优化架构,并基于金融场景的生态合作、用户运营、数据变现优化要求,设计并实现鸿蒙金融理财全栈项目的生态合作、用户运营、数据变现优化功能。 学习目标: * 掌握鸿蒙金融理财项目的生态合作设计与实现; * 实现生态合作协议、生态合作接口、生态合作数据; * 理解用户运营优化在金融场景的核心设计与实现; * 实现用户分群优化、用户画像优化、用户留存优化; * 掌握数据变现优化在金融场景的设计与实现; * 实现广告变现优化、付费变现优化、数据产品变现优化; * 优化金融理财项目的用户体验(生态合作、用户运营、数据变现优化)。 学习重点: * 鸿蒙金融理财项目的生态合作设计原则; * 用户运营优化在金融场景的应用; * 数据变现优化在金融场景的设计要点。 一、 生态合作基础 🎯 1.1 生态

By Ne0inhk
Flutter 三方库 mix_context 的鸿蒙化适配指南 - 实现极简上下文增强、支持非 Widget 作用域下的 BuildContext 访问与状态注入

Flutter 三方库 mix_context 的鸿蒙化适配指南 - 实现极简上下文增强、支持非 Widget 作用域下的 BuildContext 访问与状态注入

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 mix_context 的鸿蒙化适配指南 - 实现极简上下文增强、支持非 Widget 作用域下的 BuildContext 访问与状态注入 前言 在进行 Flutter for OpenHarmony 开发时,我们经常会遇到底层逻辑(如 Service、Repository)需要访问 BuildContext 的窘境(例如为了弹出一个全局 Dialog 或获取当前的主题颜色)。虽然传统的做法是层层传递参数,但代码会因此变得臃肿。mix_context 提供了一种更优雅的上下文混入与注入方案。本文将指导大家如何在鸿蒙端利用该库提升代码的响应能力。 一、原理解析 / 概念介绍 1.1 基础原理 mix_context 的核心思想是将 BuildContext 的引用通过全局代理或单例模式进行“

By Ne0inhk
Flutter 三方库 hooks_runner 的鸿蒙化适配指南 - 实现声明式的生命周期 Hook 任务管理、支持端侧自动化脚本触发与执行流精准编排实战

Flutter 三方库 hooks_runner 的鸿蒙化适配指南 - 实现声明式的生命周期 Hook 任务管理、支持端侧自动化脚本触发与执行流精准编排实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 hooks_runner 的鸿蒙化适配指南 - 实现声明式的生命周期 Hook 任务管理、支持端侧自动化脚本触发与执行流精准编排实战 前言 在进行 Flutter for OpenHarmony 的自动化工具、CI/CD 插件或具备高度动态逻辑的业务系统开发时,如何有序、可控地执行一系列相互依赖的“任务钩子(Hooks)”?hooks_runner 是一个专为任务生命周期编排设计的轻量级引擎。它能将离散的函数逻辑拆解并组装成一条健壮的执行流水线。本文将介绍如何在鸿蒙端利用该库构建极致的任务执行闭环。 一、原理解析 / 概念介绍 1.1 基础原理 hooks_runner 采用了“注册-触发(Register & Trigger)”模式。它允许开发者在不同的生命周期阶段(如 pre_

By Ne0inhk
Flutter 三方库 stream_channel 的鸿蒙化适配指南 - 实现具备跨端通讯抽象与协议分层治理的流通道架构、支持端侧多维异步指令流管道化实战

Flutter 三方库 stream_channel 的鸿蒙化适配指南 - 实现具备跨端通讯抽象与协议分层治理的流通道架构、支持端侧多维异步指令流管道化实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 stream_channel 的鸿蒙化适配指南 - 实现具备跨端通讯抽象与协议分层治理的流通道架构、支持端侧多维异步指令流管道化实战 前言 在进行 Flutter for OpenHarmony 的复杂通讯系统(如实现自定义的二进制协议、跨进程 IPC 或与嵌入式设备进行长连接)开发时,如何将原始的、读写分离的 IO 映射为统一、双工的指令流?stream_channel 是一款专注于流通讯抽象的核心库。它将一个 Stream(入站)和一个 StreamSink(出站)封装为单一、可组合的对象。本文将探讨如何在鸿蒙端构建极致、清亮的流通讯底座。 一、原直观解析 / 概念介绍 1.1 基础原理 该库建立在“双工通道(

By Ne0inhk