上周末顺利的在MacBook下使用虚拟机把kingbase数据库环境搭建成功了,本周非常开心的跟麦麦女士分享了这个消息,在此整理成文章(问了下社区,没有重复造轮子),有需要的朋友可以参考。

用了两年多的MacBook Air(M2芯片),目前主要遇到ARM架构下虚拟机的使用问题,除此之外整体操作体验非常舒适。
安装虚拟机软件
现在MacBook ARM架构下可以使用的免费软件有VBox 7.2,几年前VBox 6的版本还不支持,当时能找到的可用软件是VMware Fusion Public Tech Preview 22H2

本文使用的虚拟机软件为VMware Fusion,周末对比测试比VBox 7.2,个人觉得前者好用一些,也可能是用习惯了。
安装虚拟机
使用VMware Fusion在ARM架构下能安装成功的虚拟机并不多,目前安装成功的有Centos 7.9、Centos 8.4、Rocky 9,但这些操作系统都不能正常安装kingbase,因为一些系统依赖包的关系。
今年一月份萧老师的公众号发了一篇文章<<用ARM芯片的MacBook测试国产OS>>,参考GRUB的配置:
启动镜像时,按键盘 e 进入到 GRUB 的编辑界面,删除video=vesa:off后,按键Ctrl+x即可正常安装
参照上面的指示,openEuler 22.03 SP3顺利完成安装。


安装kingbase数据库
安装完openEuler 22.03版本的虚拟机之后,kingbase才可顺利部署,经测试V8和V9可以同时部署独立运行。
下面是具体的安装过程
1.数据库的ISO文件通过新增CD/DVD设置进行挂载
这样设置可以避免虚拟机磁盘空间不够的问题
$ cat /etc/fstab
...
/dev/sr0 /media iso9660 defaults,ro,loop 0 0
/dev/sr1 /media1 iso9660 defaults,ro,loop 0 0
/dev/sr0是openEuler系统的iso,/dev/sr1就是新增的kingbase iso
2.新增一个10G大小的磁盘,单独用于数据库安装部署
$ mkfs.xfs /dev/nvme0n2
$ mkdir /database1
$ chmod 777 /database1
$ cat /etc/fstab
...
/dev/nvme0n2 /database1 xfs defaults 0 0
新增的分区/database1可以在安装部署完成后,只将必要的目录再转移到第一块磁盘上,数据库安装完成后再可以把这块磁盘卸载返回给宿主机。
3.数据库安装前的宿主用户及目录准备
$ groupadd dbgrp
$ useradd kbase -g dbgrp
$ mkdir -p /database1/Kingbase/ES/V8
$ mkdir -p /database1/Kingbase/ES/V9
$ chown -R kbase: /database1/Kingbase
$ mkdir -p /opt/data8
$ mkdir -p /opt/data9
$ chown -R kbase: {/opt/data8,/opt/data9}
4.执行安装脚本
# su - kbase
$ cd /media1/setup/
$ export HOME=/database1
$ ./install.bin
执行install.bin之前先临时修改HOME环境变量为新增的磁盘分区目录/database1,否则在根分区下容易出现磁盘空间不够而安装失败。
- 阶段一的数据库bin目录更改为/database1/Kingbase/ES/V9
- 阶段二的数据目录更改为/opt/data9
注意阶段一安装完数据库bin目录后,需要打开一个新窗口执行如下命令,建立两个文件的符号链接:
ln -s /usr/lib64/libldap.so.2.0.200 /database1/Kingbase/ES/V9/Server/lib/libldap-2.4.so.2 ln -s /usr/lib64/libldap.so.2.0.200 /database1/Kingbase/ES/V9/Server/lib/libldap_r-2.4.so.2
安装V8版本也是类似的操作
ln -s /usr/lib64/libldap.so.2.0.200 /database1/Kingbase/ES/V8/Server/lib/libldap-2.4.so.2 ln -s /usr/lib64/libldap.so.2.0.200 /database1/Kingbase/ES/V8/Server/lib/libldap_r-2.4.so.2
如果在阶段一完成后没有执行上面的操作,阶段二初始化数据目录时会出现如下错误提示:
error while loading shared libraries: libldap_r-2.4.so.2: cannot open shared object file: No such file or directory
此时可以参照上面的提示,打开新窗口重新建立那两个文件的符号链接再重试即可。
最后一步可选操作:手工删除暂时不需要的目录来进行瘦身
rm -rf /database1/Kingbase/ES/V9/ClientTools/guitools/* rm -rf /database1/Kingbase/ES/V9/doc/* rm -rf /database1/Kingbase/ES/V9/KingbaseHA/* rm -rf /database1/Kingbase/ES/V9/install/* rm -rf /database1/Kingbase/ES/V9/Uninstall/*
V8版本也是类似的操作
rm -rf /database1/Kingbase/ES/V8/ClientTools/guitools/* rm -rf /database1/Kingbase/ES/V8/doc/* rm -rf /database1/Kingbase/ES/V8/KingbaseHA/* rm -rf /database1/Kingbase/ES/V8/install/* rm -rf /database1/Kingbase/ES/V8/Uninstall/*
瘦身后,V8和V9各占510M
$ du -sh /database1/Kingbase/ES/V*
510M /database1/Kingbase/ES/V8
510M /database1/Kingbase/ES/V9
可选操作:将目录移到第一块磁盘后,卸载第二块磁盘,返还空间给宿主机。
5.配置环境变量
export LD_LIBRARY_PATH=/database1/Kingbase/ES/V9/Server/lib export PATH=/database1/Kingbase/ES/V9/Server/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
6.启动数据库服务
启动数据库:
sys_ctl -w start -D "/opt/data9" -l "/home/kbase/startup9.log"
访问数据库:
ksql -p 54321 -U system kingbase
停止数据库:
sys_ctl stop -D "/opt/data9"
本文结束~
与我联系
- 微信公众号:象楚之行
- 墨天轮:https://www.modb.pro/u/15675
- 微信:skypkmoon
勤耕细作,用心积微;静待花开,量变质成。




