如何把达梦8数据库安装在root用户下管理

达梦数据库一般安装在dmdba用户下,官方文档也是这么推荐的。

那么有没有办法不创建dmdba用户,直接安装在root下呢?

希望我不要把大家带偏,只是本着研究学习的心态,做个实验。

结果是完全可以的,下面是详细的步骤。

  1. 软件环境版本:

Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso

dm8_20221031_x86_kylin10_64.iso

  1. 配置环境变量,因为达梦用root安装,默认会放在/opt/dmdbms,所以下面我们就用这个了

cd

echo '

export DM_HOME=/opt/dmdbms

export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH

export LD_LIBRARY_PATH=$DM_HOME/bin:$LD_LIBRARY_PATH

' >>.bash_profile

  1. 配置ulimit,麒麟的nproc默认已经很高了,这里只配置一个nofile和stack

myuser=root

cat >>/etc/security/limits.conf <<EOF

$myuser soft nofile 65536

$myuser hard nofile 65536

$myuser soft stack 10240

EOF

su -

  1. 安装达梦软件包

# mount /soft/dm8_20221031_x86_kylin10_64.iso /mnt

# /mnt/DMInstall.bin -i

请选择安装语言(C/c:中文 E/e:英文) [C/c]:

解压安装程序.........

欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [Y/y]:n

安装类型:

1 典型安装

2 服务器

3 客户端

4 自定义

请选择安装类型的数字序号 [1 典型安装]:

所需空间: 1829M

请选择安装目录 [/opt/dmdbms]:

可用空间: 55G

是否确认安装路径(/opt/dmdbms)? (Y/y:是 N/n:否) [Y/y]:

安装前小结

安装位置: /opt/dmdbms

所需空间: 1829M

可用空间: 55G

版本信息:

有效日期:

安装类型: 典型安装

是否确认安装? (Y/y:是 N/n:否):y

2023-03-09 20:51:21

[INFO] 安装达梦数据库...

2023-03-09 20:51:21

[INFO] 安装 基础 模块...

2023-03-09 20:51:24

[INFO] 安装 服务器 模块...

2023-03-09 20:51:24

[INFO] 安装 客户端 模块...

2023-03-09 20:51:25

[INFO] 安装 驱动 模块...

2023-03-09 20:51:25

[INFO] 安装 手册 模块...

2023-03-09 20:51:25

[INFO] 安装 服务 模块...

2023-03-09 20:51:27

[INFO] 移动日志文件。

2023-03-09 20:51:28

[INFO] 创建dmdba系统管理员完成。

2023-03-09 20:51:29

[INFO] 正在启动DmAPService服务...

2023-03-09 20:51:29

[INFO] 启动DmAPService服务成功。

2023-03-09 20:51:29

[INFO] 安装达梦数据库完成。

安装结束

安装过程中达梦会默认创建一个dmdba用户,默认注册一个dmap服务,

接下来我们把这个dmdba用户删除,把dmap服务调整成用root启动。

# tail -n 1 /etc/passwd

dmdba:x:1001:1001::/home/dmdba:/bin/sh

# systemctl list-unit-files|grep Dm

DmAPService.service enabled

  1. 建一个数据库

# dminit PATH=/opt/dmdbms/data DB_NAME=DM1 INSTANCE_NAME=DM1INST PORT_NUM=5236 CHARSET=1

initdb V8

db version: 0x7000c

file dm.key not found, use default license!

License will expire on 2023-10-31

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

log file path: /opt/dmdbms/data/DM1/DM101.log

log file path: /opt/dmdbms/data/DM1/DM102.log

write to dir [/opt/dmdbms/data/DM1].

create dm database success. 2023-03-09 20:54:12

注册服务到linux系统,以便机器重启的时候,能够自动启动数据库服务。

# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DM1/dm.ini -p DM1INST

此时数据库是无法用systemctl启动的,一些相关报错如下:

# systemctl start DmServiceDM1INST

Job for DmServiceDM1INST.service failed because the control process exited with error code.

See "systemctl status DmServiceDM1INST.service" and "journalctl -xe" for details.

# systemctl status DmServiceDM1INST

● DmServiceDM1INST.service - DM Instance Service(DmServiceDM1INST).

Loaded: loaded (/usr/lib/systemd/system/DmServiceDM1INST.service; enabled; vendor preset: disabled)

Active: failed (Result: exit-code) since Fri 2023-03-10 01:52:01 CST; 20s ago

Process: 11753 ExecStart=/opt/dmdbms/bin/DmServiceDM1INST start (code=exited, status=1/FAILURE)

3月 10 01:51:45 kl1 systemd[1]: Starting DM Instance Service(DmServiceDM1INST)....

3月 10 01:52:01 kl1 systemd[1]: DmServiceDM1INST.service: Control process exited, code=exited, status=1/FAILURE

3月 10 01:52:01 kl1 systemd[1]: DmServiceDM1INST.service: Failed with result 'exit-code'.

3月 10 01:52:01 kl1 systemd[1]: Failed to start DM Instance Service(DmServiceDM1INST)..

下面我们修改一些配置,使它正常启动,而且在root用户下启动。

  1. 改成root可以直接启动的

修改$DM_HOME文件夹权限

# chown -R root:root /opt/dmdbms

修改DmAPService在root下启动,把dmdba改成root

# systemctl stop DmAPService

# cat /usr/lib/systemd/system/DmAPService.service

[Unit]

Description=DM Assistant Plug-In Service

After=network.target remote-fs.target

[Service]

Type=forking

PIDFile=/opt/dmdbms/bin/pids/DmAPService.pid

ExecStart=/opt/dmdbms/bin/DmAPService start

ExecStop=/opt/dmdbms/bin/DmAPService stop

PrivateTmp=true

User=dmdba

TasksMax=infinity

LimitCORE=infinity

LimitNOFILE=100000

LimitNPROC=100000

[Install]

WantedBy=multi-user.target

# sed -i 's/dmdba/root/' /usr/lib/systemd/system/DmAPService.service

修改数据库服务在root下启动,把dmdba改成root

# cat /usr/lib/systemd/system/DmServiceDM1INST.service

[Unit]

Description=DM Instance Service(DmServiceDM1INST).

After=network.target remote-fs.target

[Service]

Type=forking

PIDFile=/opt/dmdbms/bin/pids/DmServiceDM1INST.pid

ExecStart=/opt/dmdbms/bin/DmServiceDM1INST start

ExecStop=/opt/dmdbms/bin/DmServiceDM1INST stop

PrivateTmp=true

User=dmdba

TasksMax=infinity

LimitCORE=infinity

LimitNOFILE=100000

LimitNPROC=100000

[Install]

WantedBy=multi-user.target

# sed -i 's/dmdba/root/' /usr/lib/systemd/system/DmServiceDM1INST.service

重新加载配置,启动达梦服务

# systemctl daemon-reload

# systemctl start DmAPService

# systemctl start DmServiceDM1INST

  1. 删除dmdba用户和dinstall组

# userdel -r dmdba

# groupdel dinstall

  1. 验证

# reboot

检查数据库实例、dmap服务都是自动启动的,达梦的工具disql,manager,monitor,console,dbca.sh,dmservice.sh也都是正常使用的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值