> 技术文档 > 手把手教你在国产麒麟/Linux下安装人大金仓Kingbase v9数据库,以及本地navicat连接人大金仓数据库,跟着做安装成功率99%!_navicat连接kingbase

手把手教你在国产麒麟/Linux下安装人大金仓Kingbase v9数据库,以及本地navicat连接人大金仓数据库,跟着做安装成功率99%!_navicat连接kingbase

安装人大金仓数据库,根据官方要求需要检查系统配置,如果配置与官方不一致可能涉及到重启系统的操作,如果是在生产的环境上重启服务是很严重的问题,所以如果只是为了学习安装人大金仓数据库并简单的操作:

个人建议,这些参数感觉不修改也没啥大问题,下面是检查参数的步骤,如果想要了解,就往下看,或直接调到第二段,进行安装。

一、检查参数

查看semmsl,semmns,semopm,semmni的值,输出如下

四个数值分别对应:kernel.sem = 32000 1024000000 500 32000

  • 第1个值‌:semmsl(每个信号量集的最大信号量数)
  • 第2个值‌:semmns(系统范围内信号量总数)
  • 第3个值‌:semopm(单次semop调用允许的最大操作数)
  • 第4个值‌:semmni(系统允许的信号量集最大数量)
/sbin/sysctl -a | grep sem

或者通过

cat /proc/sys/kernel/sem

直接输出四个值 依次分别是semmsl,semmns,semopm,semmni

或者

ipcs -ls

查看shmall

/sbin/sysctl -a | grep shm

cat /proc/sys/kernel/shmall

ipcs -lm

查看file-max

/sbin/sysctl -a | grep file-max

cat /proc/sys/fs/file-max

查看aio-max-nr

/sbin/sysctl -a | grep aio-max-nr

cat /proc/sys/fs/aio-max-nr

查看ip_local_port_range

/sbin/sysctl -a | grep ip_local_port_range

cat /proc/sys/net/ipv4/ip_local_port_range

查看rmem_max

/sbin/sysctl -a | grep rmem_max

cat /proc/sys/net/core/rmem_max

查看rmem_default

/sbin/sysctl -a | grep rmem_default

cat /proc/sys/net/core/rmem_default

查看wmem_default

/sbin/sysctl -a | grep wmem_default

cat /proc/sys/net/core/wmem_default

查看 wmem_max

/sbin/sysctl -a | grep wmem_max

cat /proc/sys/net/core/wmem_max

查看tcp_wmem

/sbin/sysctl -a | grep tcp_wmem

查看tcp_rmem

/sbin/sysctl -a | grep tcp_rmem

经过对比这个系统的aio-max-nr没有达到官方要求的,所以我值添加了这个的变动,其他参数都比官方推荐的值大,并经过ai的解释,个人理解不用修改,所以没改

通过编辑/etc/sysctl.conf文件修改参数

添加需要配置的参数,下面是官方给的参考值

使用vim /etc/sysctl.conf  按i插入,编辑完成过后按esc 退出编辑 输入:wq保存并退出

内核参数修改完毕后,重启Linux系统,并输入如下命令查看内核参数的修改是否正确:

注意重启linux如果在生产环境不要随意重启。谨慎操作,谨慎操作,谨慎操作!!!

第一段看看就行下面安装才是重点

二、安装前准备

在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录

因此,建议在正式安装前,新建 kingbase 用户作为KingbaseES专用的系统用户,先使用root用户运行如下命令创建kingbase用户

useradd -m kingbase

该命令会同时创建同名用户组kingbase以及用户根目录/home/kingbase。继续运行如下命令设置kingbase用户的密码:

passwd kingbase

密码需要输入两次,保证两次输入的密码相同。记得把密码记下来

KingbaseES默认的安装目录是

 /opt/Kingbase/ES/V9 

如果不存在,需要使用root用户先创建该目录,并赋予kingbase用户对该目录的读写权限。

创建安装目录

mkdir /opt/Kingbase/ES/V9

下面是使用xftp查看该目录的截图

授权

chmod o+rwx /opt/Kingbase/ES/V9

切换到kingbase用户

su - kingbase

数据目录是KingbaseES中存放数据文件的目录,默认是在安装目录下的data目录。数据目录不必事先创建。安装过程中会提示指定数据目录,如果目录不存在安装程序会自动创建。也可以如下命令创建数据目录

三、下载安装文件与挂载

注意要切换到 kingbase 用户,进行以下操作

使用下面的命令查看操作系统信息:

cat /etc/*release

根据自己的系统选择对应的安装文件,本次使用的系统是麒麟,所以选择的是x86_64版本,注意区分版本,别下载成docker版本了

通过下面命令查看内存信息(以MB单位显示)

free -m

通过以下命令查看磁盘存储信息(以GB单位显示):

df -hl

官方提示》注意: /tmp目录需要至少10G空间。如果安装过程中出现存储空间不足的情况,请先释放足够的磁盘空间,再执行安装程序。如果硬件配置不满足要求,需要更换满足要求的硬件设备再进行安装。

以上准备工作完成后,打开人大金仓官网进入下载页面选择对应的安装包下载,并上传到服务器上

下载安装文件

下载时对应的文件有MD5校验值与SHA1校验值可以先复制保存下来。

下载地址:

电科金仓-成为世界卓越的数据库产品与服务提供商

这次安装的是KingbaseES_V009R001C002B0014_Lin64_install版本,在传到服务器之后对安装文件进行校验完整性。

下载授权文件

下载授权文件,可以根据需求下载授权文件,下载好授权文件后解压该文件并上传到服务器,以便后面安装时选择授权文件使用。dat文件就是授权文件。

下面在服务器校验安装文件完整性:

假设拿到的安装包文件是KingbaseES_V009R001C002B0014_Lin64_install.iso,查看其MD5值:

md5sum KingbaseES_V009R001C002B0014_Lin64_install.iso

查看其SHA1值:

sha1sum KingbaseES_V009R001C002B0014_Lin64_install.iso

通过返回的值与刚刚下载时让复制的值比对如果一致,说明安装文件正常;如果不一致,说明安装文件可能不完整,安装过程可能无法正常完成。

挂载iso安装文件

下载的安装文件是iso文件,iso格式的安装程序包需要先挂载才能使用。挂载iso文件需要使用root用户。

首先切换到root用户

比如挂载的目录是与iso文件在同一级的目录 KingbaseES,可以运行如下命令进行挂载:

首先进入你iso文件所存放的目录,我将iso文件放在了opt目录

cd /opt

在opt目录先创建新的目录KingbaseES

mkdir KingbaseES

挂载iso文件到KingbaseES目录

mount KingbaseES_V009R001C002B0014_Lin64_install.iso ./KingbaseES

挂载成功后查看 KingbaseES 目录会有两个安装文件

四、安装

人大金仓支持图像化安装、命令行安装、静默安装,由于直接在服务器安装,所以采用的是命令行安装

刚刚挂载iso文件时切换到了root用户,现在需要 切换到 kingbase 用户

安装支持中文和英文的安装。根据操作系统的语言设置会显示对应语言的安装界面。您可以执行如下命令查看操作系统的语言设置:

echo $LANG

如果系统显示值包含“zh_CN”,则为中文语言,安装程序会使用中文界面。否则,您可以执行如下命令修改语言设置为中文:

export LANG=zh_CN.UTF-8

下面进入安装程序 setup.sh 所在目录,执行如下命令:

sh setup.sh

sh setup.sh -i swing

一直回车即到选择授权文件,输入刚刚授权文件上传到的绝对路径,并回车,若授权文件正确则会输出授权文件信息

继续往下进行,如果在之前已经创建好了/opt/Kingbase/ES/V9目录,直接回车接受安装路径输入1回车即可

继续回车

选择存储数据的文件,默认,输入回车即可

数据库端口,默认为54321,直接输入回车即可

数据库管理员,可以默认,默认直接输入回车,默认管理员用户名为:system,也可以设置为root

设置数据库密码,设置完请保存下来不要忘记了,到这里已经有两个密码了,一个是Linux系统的kingbase用户密码,一个是数据库用户密码 不要弄混了,记录密码的时候请分清楚。

设置字符集为UTF-8,输入数字2并回车即可

设置数据库区域,输入2 回车即可

选择数据库兼容模式

设置英文大小写敏感

设置存储块大小,如果使用的是机械硬盘,就默认8K,避免单次I/O延迟过高

使用的SSD/NVMe存储,适合较大块(如16KB~32KB),利用高吞吐特性

自定义参数,默认即可

接下来数据库就开始安装了,安装完成后

将KngbaseES V9注册为系统服务

取消挂载

安装完成后,将iso文件的挂载取消

切换到Linux系统的root用户,如果root用户设置密码了,请输入密码

su

在opt目录下 执行下面的命令,如果执行时报 目标忙,可以百度ai搜索一下 目标忙怎样处理然后杀掉该进程,再次执行下面的命令

umount /opt/KingbaseES

执行成功后查看KingbaseES文件夹已经没有安装程序的文件了

接下来就可以将iso文件,授权文件以及KingbaseES目录删除掉了

五、数据库的启动

至此人大金仓Kingbase已经安装成功

查看kingbase的状态

使用如下命令

刚刚切换到了root用户取消挂载iso文件,现在需要切换到 kingbase 用户,一定要切换到kinbase用户才可以做以下操作

su kinbase

进入 kinbase 的安装路径的 /Server/bin 目录,在该目录下执行下面的命令

注意 /opt/Kingbase/ES/V9/data/  应该替换成你自己安装的数据目录data的路径,如果全程按照该教程,直接执行下面的命令就可以,可以看到服务正在运行中。

./sys_ctl status -D /opt/Kingbase/ES/V9/data/

停止kingbase服务

同样需要进入kinbase的安装路径下的 /Server/bin 目录,在该目录下执行下面的命令

注意 /opt/Kingbase/ES/V9/data/ 应该替换成你自己安装的数据目录 data的路径

./sys_ctl stop -m fast -w -D /opt/Kingbase/ES/V9/data

再次查看状态

启动kingbase服务

同样需要进入kinbase的安装路径下的 /Server/bin 目录,在该目录下执行下面的命令

注意 /opt/Kingbase/ES/V9/data/ 应该替换成你自己安装的数据目录 data的路径

sys_log是kingbase的数据库日志目录,用来存放产生的日志

./sys_ctl -w start -D /opt/Kingbase/ES/V9/data -l \"/opt/Kingbase/ES/V9/data/sys_log/startup.log\"

进入ksql

下面介绍一下如何进入ksql,并执行ksql命令 

同样需要进入kinbase的安装路径下的 /Server/bin 目录,在该目录下执行下面的命令 

注意如果在前面安装时没有设置用户而是接受使用默认用户,那么root应该替换为system

./ksql -U root -d test

然后输入安装时设置的数据库的用户密码,就进入到ksql了

test数据库是系统初始化时自动创建的‌示例数据库‌,主要用于测试和快速验证环境可用性。

可以写一个查询语句测试,查询当前用户

SELECT current_user;

输入exit退出ksql。

六、navicat远程连接人大金仓kingbase数据库

首先需要查看自己的navacat版本我的是navicat15.0.11,通过测试可以连接人大金仓数据库,在此之后的版本应该也支持,之前的暂未测试。

新建连接选择PostgreSQL

填写相关信息

测试连接

如果kingbase安装在linux服务器上,检查填写的信息都正确,还是连接失败,可以看一看Linux服务器防火墙是否关闭,或者54321端口是否对外开放。然后再测一次即可。

至此关于人大金仓kingbase数据库的安装与连接全部结束。

本文参考了人大金仓官方文档。

https://bbs.kingbase.com.cn/docHtml?recId=d16e9a1be637c8fe4644c2c82fe16444&url=aHR0cHM6Ly9iYnMua2luZ2Jhc2UuY29tLmNuL2tpbmdiYXNlLWRvYy92OS9pbnN0YWxsLXVwZGF0YS9pbnN0YWxsLWxpbnV4L2luZGV4Lmh0bWwhttps://bbs.kingbase.com.cn/docHtml?recId=d16e9a1be637c8fe4644c2c82fe16444&url=aHR0cHM6Ly9iYnMua2luZ2Jhc2UuY29tLmNuL2tpbmdiYXNlLWRvYy92OS9pbnN0YWxsLXVwZGF0YS9pbnN0YWxsLWxpbnV4L2luZGV4Lmh0bWw