麒麟操作系统(aarch64 鲲鹏)部署方案

说明:本方案适配 银河麒麟 V10 aarch64(ARM 鲲鹏),如果是 x86_64 版本,下载对应 x86 安装包即可;所有组件:JDK1.8、达梦 8、Redis、Memcached,采用离线 rpm / 二进制包安装(信创环境常用,无外网),包含前置依赖、安装、配置、开机自启、验证、防火墙。 账号:推荐 root 执行,生产建议新建普通业务用户。

一、前置准备(所有组件通用)

1. 系统基础环境

# 查看系统架构
uname -m
# aarch64=鲲鹏arm;x86_64=x86
cat /etc/kylin-release

# 关闭SELinux(信创环境可选,生产可按需放开)
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

# 防火墙放行端口:8080、5236(达梦)、6379(redis)、11211(memcached)
firewall-cmd --add-port=5236/tcp --permanent
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --add-port=11211/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports

# 创建统一业务目录
mkdir -p /opt/software /opt/app /opt/data

2. 安装基础依赖包

yum install -y wget tar zip unzip libaio ncurses-devel gcc gcc-c++ make cmake

第一部分:JDK1.8 安装(麒麟 aarch64)

信创 arm 平台必须使用 aarch64 版本 JDK8,推荐:毕昇 JDK8 / 龙芯 JDK8 / OpenJDK1.8 aarch64,不要用 x86 的 jdk。 毕昇 JDK:华为开源,鲲鹏平台兼容性最好。

步骤 1:上传压缩包

包名示例:bisheng-jdk-1.8.0_412-linux-aarch64.tar.gz,上传到 /opt/software

cd /opt/software
tar -zxvf bisheng-jdk-1.8.0_412-linux-aarch64.tar.gz -C /opt/app/
mv /opt/app/bisheng-jdk1.8.0_412 /opt/app/jdk1.8

步骤 2:配置环境变量

vi /etc/profile
# 末尾添加
export JAVA_HOME=/opt/app/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib

# 生效
source /etc/profile

# 验证
java -version
javac -version

输出 java version "1.8.0_xxx" 即成功。

可选:如果需要多 jdk 切换,可配置软链接,业务应用指定 JAVA_HOME。


第二部分:达梦数据库 DM8 安装(麒麟 V10 aarch64)

达梦 8 支持银河麒麟 V10 arm,两种方式:图形化 / 命令行静默安装;服务器无桌面推荐静默安装。 安装包:dm8_xxx_kylin_aarch64.iso

步骤 1:挂载 iso 镜像

mkdir -p /mnt/dmiso
mount -o loop /opt/software/dm8_xxx_kylin_aarch64.iso /mnt/dmiso

步骤 2:创建达梦用户、组

groupadd dinstall
useradd -g dinstall dmdba
echo "dmdba123" | passwd --stdin dmdba
# 目录授权
mkdir -p /opt/app/dm8 /opt/data/dmdbms
chown -R dmdba:dinstall /opt/app/dm8 /opt/data/dmdbms
chmod -R 755 /opt/app/dm8

步骤 3:系统资源调优(dmdba 用户限制)

vi /etc/security/limits.conf
# 添加
dmdba soft nofile 65535
dmdba hard nofile 65535
dmdba soft nproc 65535
dmdba hard nproc 65535

步骤 4:静默安装达梦

# 切换dmdba用户
su - dmdba
cd /mnt/dmiso
# 静默安装命令
./DMInstall.bin -q

静默安装交互简要说明:

  1. 选择 key 文件:无 key 直接回车(试用版)
  2. 时区:+8
  3. 安装目录:/opt/app/dm8
  4. 是否创建数据库实例:先选不创建实例,安装完单独建库

安装完成后,必须使用 root 执行脚本(控制台提示):

# root执行,注册服务
/opt/app/dm8/script/root/dm_service_shturl.cc/9E -t dmserver -dm_ini /opt/app/dm8/data/DAMENG/dm.ini -p DMSERVER

步骤 5:创建数据库实例(dmdba)

su - dmdba
/opt/app/dm8/bin/dminit \
PATH=/opt/data/dmdbms \
DB_NAME=DAMENG \
INSTANCE_NAME=DMSERVER \
PORT_NUM=5236 \
PAGE_SIZE=32 \
CASE_SENSITIVE=0 \
CHARSET=0

CASE_SENSITIVE=0:大小写不敏感(适配 Java 项目常用);CHARSET=0 中文 GBK,1=UTF8

步骤 6:启动、自启、连接验证

# root操作
systemctl enable DMSERVER
systemctl start DMSERVER
systemctl status DMSERVER

# dmdba验证连接
su - dmdba
/opt/app/dm8/bin/disql SYSDBA/SYSDBA@localhost:5236

默认账号:SYSDBA,密码 SYSDBA,生产务必修改密码。

达梦常用目录

  • 程序:/opt/app/dm8
  • 数据文件:/opt/data/dmdbms
  • 日志:/opt/app/dm8/log

第三部分:Redis 安装(麒麟 V10 aarch64)

方案:源码编译安装(arm 平台兼容性最好,推荐 redis 6.2.x 稳定版)

步骤 1:解压源码包

redis 包:redis-6.2.14.tar.gz

cd /opt/software
tar -zxvf redis-6.2.14.tar.gz -C /opt/app/
cd /opt/app/redis-6.2.14

步骤 2:编译安装

make MALLOC=libc
make PREFIX=/opt/app/redis install

步骤 3:创建 redis 配置、数据目录

mkdir -p /opt/app/redis/conf /opt/data/redis
cp /opt/app/redis-6.2.14/redis.conf /opt/app/redis/conf/

步骤 4:修改 redis.conf 配置

vi /opt/app/redis/conf/redis.conf

修改关键项:

# 后台守护进程
daemonize yes
# 监听地址,生产不要0.0.0.0,按需限制IP
bind 0.0.0.0
port 6379
# 密码,生产必须设置
requirepass Redis@123
# 数据持久化目录
dir /opt/data/redis
# pid文件
pidfile /var/run/redis_6379.pid

步骤 5:配置 systemd 开机自启

vi /etc/systemd/system/redis.service

写入:

[Unit]
Description=Redis
After=network.target

[Service]
Type=forking
ExecStart=/opt/app/redis/bin/redis-server /opt/app/redis/conf/redis.conf
ExecStop=/opt/app/redis/bin/redis-cli -a Redis@123 shutdown
PrivateTmp=true

[Install]
WantedBy=multi-user.target

步骤 6:启动验证

systemctl daemon-reload
systemctl enable redis
systemctl start redis
systemctl status redis

# 连接测试
/opt/app/redis/bin/redis-cli -a Redis@123
> set k1 v1
> get k1

第四部分:Memcached 安装(麒麟 V10 aarch64)

两种方式:yum 安装(麒麟源自带 memcached aarch64 rpm)或者源码编译;优先 yum,最简单。

方式 A:yum 安装(推荐,内网需要配置本地 yum 源)

yum install -y memcached libevent

修改配置文件 /etc/sysconfig/memcached

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="1024"
OPTIONS="-l 0.0.0.0"

CACHESIZE:内存大小 MB;-l 0.0.0.0允许外部访问,生产限制 IP。

# 启动&自启
systemctl enable memcached
systemctl start memcached
systemctl status memcached

# 验证
telnet 127.0.0.1 11211
# 或者
memcached-tool 127.0.0.1:11211 stats

方式 B:源码编译(yum 源不可用时)

cd /opt/software
tar -zxvf memcached-1.6.21.tar.gz -C /opt/app
cd /opt/app/memcached-1.6.21
./configure --prefix=/opt/app/memcached
make && make install

编写 systemd 服务文件 /etc/systemd/system/memcached.service

[Unit]
Description=Memcached
After=network.target

[Service]
Type=simple
ExecStart=/opt/app/memcached/bin/memcached -u memcached -p 11211 -m 1024 -c 1024 -l 0.0.0.0
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable memcached
systemctl start memcached

五、整体验证清单(部署完成后统一检查)

# JDK
java -version
# 达梦
systemctl status DMSERVER
/opt/app/dm8/bin/disql SYSDBA/SYSDBA@127.0.0.1:5236
# Redis
systemctl status redis
/opt/app/redis/bin/redis-cli -a Redis@123 info server
# Memcached
systemctl status memcached
memcached-tool 127.0.0.1:11211 stats

# 端口监听检查
ss -tlnp | grep -E "5236|6379|11211"

六、生产环境注意事项

  1. 所有数据库 / 中间件禁止弱密码;达梦 SYSDBA、Redis 密码必须强口令。
  2. 生产 bind 不要 0.0.0.0,指定业务服务器 IP,缩小访问范围。
  3. 数据目录 /opt/data 建议单独挂载数据盘,不要放系统盘。
  4. 定期备份:达梦 dexp 逻辑备份;Redis 开启 RDB/AOF 持久化;Memcached 无持久化,只做缓存。
  5. 资源:达梦内存初始化参数建议根据服务器内存调整,不要占满物理内存。
  6. 日志:统一规划日志目录,配置日志轮转(logrotate)防止磁盘打满。

七、常见坑(麒麟 ARM)

  1. JDK 包架构不对:x86 的 jdk 在 aarch64 直接报错无法执行,必须毕昇 / OpenJDK aarch64。
  2. 达梦安装缺少 libaio:yum 安装 libaio,否则实例启动失败。
  3. Redis 编译报错:缺少 gcc,先装 gcc gcc-c++。
  4. SELinux 拦截端口访问:测试环境临时关闭,生产需要配置 selinux 策略。

银河麒麟 V10 aarch64 JDK1.8 + 达梦 8+Redis+Memcached 一键部署脚本

脚本编号:deploy_all.sh 适用:银河麒麟 V10 ARM64 (aarch64),离线部署,需要提前把安装包放到/opt/software目录 前置准备(必须手动提前上传,脚本不会下载包)

/opt/software/
├── bisheng-jdk-1.8.0_412-linux-aarch64.tar.gz   #毕昇JDK8 aarch64
├── dm8_xxx_kylin_aarch64.iso                    #达梦8 iso镜像
├── redis-6.2.14.tar.gz                          #redis源码包
└── memcached-1.6.21.tar.gz                      #memcached源码包

注意:达梦需要 key 则自行准备,无 key 为试用;脚本默认密码,生产部署后务必修改;执行用户 root;内网环境 yum 源可用。

#!/bin/bash
# -*- coding:utf-8 -*-
# 麒麟V10 aarch64 一键部署:JDK1.8、DM8达梦、Redis6.2.14、Memcached1.6.21
# 执行:chmod +x deploy_all.sh && ./deploy_all.sh
set -e

echo "===================== 0.初始化环境 ====================="
mkdir -p /opt/software /opt/app /opt/data /mnt/dmiso
# 关闭selinux
setenforce 0 || true
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config || true

# 防火墙放行端口
firewall-cmd --add-port=5236/tcp --permanent
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --add-port=11211/tcp --permanent
firewall-cmd --reload

# 安装基础依赖
yum install -y wget tar zip unzip libaio ncurses-devel gcc gcc-c++ make cmake libevent libevent-devel

echo "===================== 1.部署毕昇JDK1.8 ====================="
cd /opt/software
tar -zxvf bisheng-jdk-1.8.0_412-linux-aarch64.tar.gz -C /opt/app/
mv /opt/app/bisheng-jdk1.8.0_412 /opt/app/jdk1.8 || true

# 写入环境变量
grep -q "JAVA_HOME=/opt/app/jdk1.8" /etc/profile || cat >>/etc/profile <<EOF
export JAVA_HOME=/opt/app/jdk1.8
export PATH=\$JAVA_HOME/bin:\$PATH
export CLASSPATH=.:\$JAVA_HOME/lib
EOF
source /etc/profile
java -version
echo "JDK1.8安装完成"

echo "===================== 2.部署达梦数据库DM8 ====================="
# 创建用户组
groupadd -f dinstall
id dmdba >/dev/null 2>&1 || useradd -g dinstall dmdba
echo "dmdba123" | passwd --stdin dmdba || true

mkdir -p /opt/app/dm8 /opt/data/dmdbms
chown -R dmdba:dinstall /opt/app/dm8 /opt/data/dmdbms
chmod -R 755 /opt/app/dm8

# 修改资源限制
grep -q "dmdba soft nofile 65535" /etc/security/limits.conf || cat >>/etc/security/limits.conf <<EOF
dmdba soft nofile 65535
dmdba hard nofile 65535
dmdba soft nproc 65535
dmdba hard nproc 65535
EOF

# 挂载iso
mount -o loop /opt/software/dm8_xxx_kylin_aarch64.iso /mnt/dmiso

# 静默安装达梦
su - dmdba <<DM_EOF
cd /mnt/dmiso
./DMInstall.bin -q -i
DM_EOF

# 注册服务,达梦安装后root执行注册脚本
/opt/app/dm8/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/app/dm8/data/DAMENG/dm.ini -p DMSERVER || true

# 创建数据库实例 dminit
su - dmdba <<INIT_DB
/opt/app/dm8/bin/dminit PATH=/opt/data/dmdbms DB_NAME=DAMENG INSTANCE_NAME=DMSERVER PORT_NUM=5236 PAGE_SIZE=32 CASE_SENSITIVE=0 CHARSET=1
INIT_DB

# 修改dm.ini路径,指向新的数据目录
sed -i "s|^CTL_PATH.*|CTL_PATH = \/opt\/data\/dmdbms\/DAMENG\/dm.ctl|" /opt/data/dmdbms/DAMENG/dm.ini
# 更新服务ini配置
/opt/app/dm8/script/root/dm_service_installer.sh -d DMSERVER
/opt/app/dm8/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/data/dmdbms/DAMENG/dm.ini -p DMSERVER

systemctl enable DMSERVER
systemctl start DMSERVER
sleep 8
systemctl status DMSERVER --no-pager
echo "达梦DM8部署完成,端口5236,账号SYSDBA/SYSDBA"

echo "=====================3.部署Redis6.2.14====================="
cd /opt/software
tar -zxvf redis-6.2.14.tar.gz -C /opt/app/
cd /opt/app/redis-6.2.14
make MALLOC=libc
make PREFIX=/opt/app/redis install

mkdir -p /opt/app/redis/conf /opt/data/redis
cp /opt/app/redis-6.2.14/redis.conf /opt/app/redis/conf/

# 修改redis配置
cat >/opt/app/redis/conf/redis.conf <<REDIS_CONF
daemonize yes
bind 0.0.0.0
port 6379
requirepass Redis@123
dir /opt/data/redis
pidfile /var/run/redis_6379.pid
logfile "/opt/app/redis/redis.log"
REDIS_CONF

# systemd服务
cat >/etc/systemd/system/redis.service <<EOF
[Unit]
Description=Redis Server
After=network.target

[Service]
Type=forking
ExecStart=/opt/app/redis/bin/redis-server /opt/app/redis/conf/redis.conf
ExecStop=/opt/app/redis/bin/redis-cli -a Redis@123 shutdown
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable redis
systemctl start redis
sleep 3
/opt/app/redis/bin/redis-cli -a Redis@123 info server
echo "Redis部署完成,端口6379,密码Redis@123"

echo "=====================4.部署Memcached1.6.21 源码编译====================="
cd /opt/software
tar -zxvf memcached-1.6.21.tar.gz -C /opt/app
cd /opt/app/memcached-1.6.21
./configure --prefix=/opt/app/memcached
make && make install

id memcached >/dev/null 2>&1 || useradd -M -s /sbin/nologin memcached

cat >/etc/systemd/system/memcached.service <<EOF
[Unit]
Description=Memcached
After=network.target

[Service]
Type=simple
ExecStart=/opt/app/memcached/bin/memcached -u memcached -p 11211 -m 1024 -c 1024 -l 0.0.0.0
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable memcached
systemctl start memcached
sleep 2
echo "Memcached部署完成,端口11211,内存1024M"

echo "=====================全部组件部署完毕,执行校验====================="
echo "--------JDK--------"
java -version
echo -e "\n--------达梦状态--------"
systemctl is-active DMSERVER
echo -e "\n--------Redis状态--------"
systemctl is-active redis
echo -e "\n--------Memcached状态--------"
systemctl is-active memcached
echo -e "\n--------端口监听--------"
ss -tlnp | grep -E "5236|6379|11211"

cat <<FINISH
################################################################
# 【生产重要提醒】
# 1.达梦账号:SYSDBA/SYSDBA,请立刻修改密码
# 2.Redis密码:Redis@123,请修改强密码
# 3.bind 0.0.0.0仅测试环境,生产修改为业务内网IP
# 4.数据目录:/opt/data,建议挂载独立数据磁盘
# 5.达梦默认试用版,正式环境导入dm.key授权
################################################################
FINISH

使用操作步骤

  1. 将上面脚本保存为 deploy_all.sh
  2. 上传服务器 /opt/software,同时上传 4 个安装包到此目录
  3. 修改脚本中达梦 iso 文件名:dm8_xxx_kylin_aarch64.iso 替换为实际 iso 文件名
  4. root 用户执行授权:
chmod +x deploy_all.sh
./deploy_all.sh

脚本说明

  1. 采用源码编译 Redis、Memcached,适配离线无 yum 外网环境;
  2. JDK 使用毕昇 JDK,环境变量写入/etc/profile全局生效;
  3. 达梦:自动创建 dmdba 用户,静默安装,独立数据目录/opt/data/dmdbms,大小写不敏感,UTF8 字符集;
  4. Redis、Memcached 使用 systemd 托管,开机自启;
  5. 脚本set -e遇到错误会终止,方便定位问题;
  6. 全部服务开机自启,防火墙放行对应端口。

验证命令(脚本跑完可直接复制执行)

#jdk
java -version
#达梦
/opt/app/dm8/bin/disql SYSDBA/SYSDBA@127.0.0.1:5236
#redis
/opt/app/redis/bin/redis-cli -a Redis@123
#memcached
/opt/app/memcached/bin/memcached-tool 127.0.0.1:11211 stats
#查看全部服务状态
systemctl status DMSERVER redis memcached

回滚卸载脚本(uninstall_all.sh)

测试失败清理环境用,谨慎执行,会删除数据目录

#!/bin/bash
set -e
systemctl stop DMSERVER redis memcached || true
systemctl disable DMSERVER redis memcached || true
rm -rf /etc/systemd/system/redis.service /etc/systemd/system/memcached.service
rm -rf /opt/app/jdk1.8 /opt/app/dm8 /opt/app/redis /opt/app/redis-6.2.14 /opt/app/memcached /opt/app/memcached-1.6.21
rm -rf /opt/data/dmdbms /opt/data/redis
userdel -r dmdba || true
userdel memcached || true
umount /mnt/dmiso || true
sed -i '/JAVA_HOME=/d' /etc/profile
sed -i '/dmdba soft nofile/d' /etc/security/limits.conf
systemctl daemon-reload
echo "卸载完成!"
Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐