麒麟系统下 KingbaseES 安装报错排查与解决
·
问题描述
在麒麟操作系统上以命令行方式安装 KingbaseES 数据库时,执行 ./setup.sh 后报错:严重: java.lang.RuntimeException: java.io.IOException: 没有那个文件或目录。
系统已预先安装 Java 环境,排除 Java 缺失导致的问题。

排查过程
确认 Java 环境正常
分别使用 root 用户和 kingbase 用户执行以下命令,验证 Java 可正常调用:
cd /mnt
java -jar ./setup/installer.jar
两个用户下 Java 均可正常启动,说明 Java 环境无问题,报错与 Java 本身无关。



检查用户家目录权限
根据 KingbaseES 安装要求,kingbase 用户必须对其家目录和 /tmp 目录拥有完整的读写权限。
ls -la /home/kingbase
# 输出显示属主和属组均为 root,而非 kingbase
问题原因
- 使用
useradd kingbase创建用户时,可能因-M参数或系统模板配置导致系统未能自动生成/home/kingbase家目录。 - 管理员手动执行
mkdir -p /home/kingbase创建了该目录。目录属主为root,而非kingbase - 随后使用
usermod -d /home/kingbase kingbase将家目录指向该路径。仅修改了/etc/passwd中的路径,未修正目录权限 - 但手动创建的目录属主默认为 root,并未自动变更为
kingbase,执行./setup.sh导致安装程序因权限不足而报错IOException。
解决办法
将 /home/kingbase 目录的属主和权限修改为正确的值:
su - root
chown -R kingbase:kingbase /home/kingbase
chmod -R 775 /home/kingbase
修改完成后,切换到 kingbase 用户重新执行安装:
su - kingbase
cd /mnt
./setup.sh
安装程序正常运行,问题解决。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)