摘要:Install KingbaseES V9 for CentOS_Stream9 ,安装不费事才能有兴趣继续深入使用,周边的工具(迁移,备份,客户端)
1.安装前准备工作
KingbaseES 支持通用 X86_64、龙芯、飞腾、鲲鹏等国产 CPU 硬件体系架构。
KingbaseES 支持各种主流的Linux操作系统64位发行版本,包括CentOS、中标麒麟、银河麒麟、统信UOS、
Deepin、凝思、中科方德、欧拉等操作系统。
KingbaseES 有 标准版/企业版/专业版/开发版,可以获取到测试的 license 。

本次安装使用 KingbaseES_V009R001C001B0030 版本。
配置内核参数
为了避免在KingbaseES安装和使用过程中出现问题,您需要检查和设置内核参数。
- 内核参数,您可通过编辑/etc/sysctl.conf文件修改参数:
cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmax=4294967295
kernel.shmmni=4096
kernel.sem=250 32000100128
net.ipv4.ip_local_port_range=900065500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
EOF
内核参数修改完毕后,重启Linux系统,并输入如下命令查看内核参数的修改是否正确:
/sbin/sysctl -p
/sbin/sysctl -a
- 资源使用参数
Linux 资源限制配置文件是/etc/security/limits.conf。限制用户可使用的资源数量对系统的稳定性非常重要。您可以通过调整资源限制数量改进系统性能。
其中 soft 是一个警告值,hard 是真正意义的阈值,超过系统就会报错,一般情况下两者设为同一个值。一般保持系统安装时的默认值即可。可配置的资源有如下种类: nofile、noproc、core参数可修改为如下值
cat >> /etc/security/limits.conf << EOF
# *表示所有用户,可只设置root和kingbase用户
* soft nofile 65536
# 注意:设置nofile的hardlimit不能大于/proc/sys/fs/nr_open,否则注销后将无法正常登陆
* hard nofile 65535
* soft nproc 65536
* hard nproc 65535
# unlimited表示无限制
* soft core unlimited
* hard core unlimited
EOF
- RemoveIPC 参数
systemd-logind 服务中引入的一个特性,是当一个用户退出系统后,会删除所有有关的 IPC 对象。该特性由 /etc/systemd/logind.conf 文件中的 RemoveIPC 参数控制。某些操作系统会默认打开,会造成程序信号丢失等问题(只有 redhat7 及以上和一些特殊的国产 Linux 的版本需要修改,改之前可先查看此项是否为默认 yes)。设置 RemoveIPC=no。设置后重启服务:
systemctl daemon-reload
systemctl restart systemd-logind.service
创建安装用户
useradd -m kingbase
echo "admin123" | passwd --stdin kingbase
安装目录
KingbaseES 默认的安装目录是/opt/Kingbase/ES/V9。您需要使用 root 用户先创建该目录,并赋予kingbase 用户对该目录的读写权限。
mkdir -p /opt/Kingbase/ES/V9
chmod o+rwx /opt/Kingbase/ES/V9
也可以自定义安装路径。如自定义安装路径为 /home/kingbase/kdb,使用 kingbase 用户创建目录的命令如下:
su - kingbase
mkdir /home/kingbase/kdb
数据目录
数据目录默认是在安装目录下的data目录,也可以与安装目录分开单独设置。您可以根据业务系统数据量来单独设置数据目录路径,例如将数据目录初始化在本机硬盘或者挂载在盘阵上。
您可以运行如下命令创建数据目录:
mkdir -p /opt/Kingbase/ES/V9/data
chmod o+rwx /opt/Kingbase/ES/V9/data
注意: 数据目录不必事先创建。安装过程中会提示指定数据目录,如果目录不存在安装程序会自动创建。
2.图形化安装安装KingbaseES
图形化安装支持中文和英文的安装界面。根据操作系统的语言设置会显示对应语言的安装界面。您可以执行如下命令查看操作系统的语言设置:
echo $LANG
如果系统显示值包含“zh_CN”,则为中文语言,安装程序会使用中文界面。否则,您可以执行如下命令修改
语言设置为中文:
export LANG=zh_CN.UTF-8
切换为安装用户kingbase,进入安装程序setup.sh 所在目录,执行如下命令:
sh setup.sh
或
sh setup.sh-i swing
按照官方文档《基于Linux系统的数据库软件安装指南》的指引,并未出现图形化界面,而是弹出了字符安装界面。根据提示可以顺利的完成安装。


数据库的兼容模式:

选用了postgresql 的兼容模式,并未将数据库添加到systemd 服务中。
启动数据库
[kingbase@kingbase ~]$ cd /opt/Kingbase/ES/V9/Server/bin/
[kingbase@kingbase bin]$ ./kingbase
kingbase does not know where to find the server configuration file.
You must specify the --config-file or -D invocation option or set the KINGBASE_DATA environment variable.
[kingbase@kingbase bin]$ ./kingbase -D /opt/Kingbase/ES/V9/data
2024-09-09 10:37:10.373 CST [108391] LOG: sepapower extension initialized
2024-09-09 10:37:10.534 CST [108391] LOG: starting KingbaseES V009R001C001B0030 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
2024-09-09 10:37:10.536 CST [108391] LOG: listening on IPv4 address "0.0.0.0", port 54321
2024-09-09 10:37:10.536 CST [108391] LOG: listening on IPv6 address "::", port 54321
2024-09-09 10:37:10.991 CST [108391] LOG: listening on Unix socket "/tmp/.s.KINGBASE.54321"
2024-09-09 10:37:11.183 CST [108391] LOG: redirecting log output to logging collector process
2024-09-09 10:37:11.183 CST [108391] HINT: Future log output will appear in directory "sys_log".
ksql 连接数据库
[kingbase@kingbase ~]$ cd /opt/Kingbase/ES/V9/Server/bin/
[kingbase@kingbase bin]$ ./ksql
Password for user kingbase:
ksql: error: could not connect to server: FATAL: password authentication failed for user "kingbase"
[kingbase@kingbase bin]$ ./ksql
Password for user kingbase:
ksql: error: could not connect to server: FATAL: password authentication failed for user "kingbase"
[kingbase@kingbase bin]$ ./ksql -U system
Password for user system:
ksql: error: could not connect to server: FATAL: database "system" does not exist
[kingbase@kingbase bin]$ ./ksql -U system test
Password for user system:
Type "help" for help.
test=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
kcluster | Cannot login | {}
sao | No inheritance | {}
sso | No inheritance | {}
system | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
test=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+--------+----------+-------------+-------------+-------------------
kingbase | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
security | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
template0 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system +
| | | | | system=CTc/system
template1 | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/system +
| | | | | system=CTc/system
test | system | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 |
(5 rows)
test=#
获取到了数据库的 role 信息和 database 信息。
综合以上的信息,我个人认为图形化的兼容性还有待提高,并且图形化安装界面依赖了java ,是否因操作系统的 Java 环境影响导致了图形化 GUI 未弹出。




