国产达梦(DM)数据库的安装(Linux系统)
目录
一、安装前的准备工作
1.1 导包
1.2 创建用户和组
1.3 修改文件打开最大数
1.4 目录规划
1.5 修改目录权限
二、安装DM8
2.1 挂载镜像
2.2 命令行安装
2.3 配置环境变量
2.4 启动图形化界面
三、配置实例
四、注册服务
五、启动 停止 查看状态
六、数据库客户端连接
在数字化转型浪潮中,国产数据库正逐步突破技术壁垒,达梦数据库(DAMENG)作为拥有完全自主知识产权的高性能数据库管理系统,已成为政府、金融、能源等关键领域的首选方案。它不仅通过CC EAL4+和ISO 27001安全认证,更支持分布式架构与跨平台部署,本文将通过实战安装与场景解析,为您全面解析这款国产数据库的价值。
所用系统:CentOS 7系统
达梦数据库(DAMENG)是一款国产高性能数据库管理系统,具有自主知识产权,广泛应用于政府、金融、能源等关键领域。
详细了解DM请参考官方地址:达梦官网
一、安装前的准备工作
1.1 导包
达梦包在官网下载适合的版本,CentOS系统下载dm8_20250122_x86_rh7_64.zip即可。
将安装包放在/opt/下

1.2 创建用户和组
安装达梦数据库:安装前必须创建dmdba用户,禁止使用 root 用户安装数据库。
创建用户所在的组
[root@Node1 opt]#:groupadd dinstall -g 2001
创建用户
[root@Node1 opt]#:useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
-G指定组
-m创建家目录
-d指定家目录
-s指定登录类型
-u指定uid
给用户设置密码,我这里设置的123456
[root@Node1 opt]#:passwd dmdba
更改用户 dmdba 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
1.3 修改文件打开最大数
修改前
[root@Node1 opt]#:ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15594
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 15594
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
永久修改
[root@Node1 opt]#:vim /etc/security/limits.conf......dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
:wq #保存退出
保存退出后,重启系统reboot
[root@Node1 opt]#:reboot
关闭永久防火墙,关闭核心防护
[root@Node1 ~]#:systemctl stop firewalld
[root@Node1 ~]#:systemctl disable --now firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@Node1 ~]#:
[root@Node1 ~]#:setenforce 0
切换到dmdba用户,查看是否生效
[root@Node1 ~]#:su - dmdba
[dmdba@Node1 ~]$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 20
file size (blocks, -f) unlimited
pending signals (-i) 15594
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 65536
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
1.4 目录规划
使用root用户建立文件夹,dmdba用户建立完成后需将文件所有者更改为dmdba用户,否则无法安装到该目录下。也可根据实际需求规划目录。
#创建实例保存目录
[root@Node1 ~]#:mkdir -p /dmdata/data
#归档保存目录
[root@Node1 ~]#:mkdir -p /dmdata/arch
#备份保存目录
[root@Node1 ~]#:mkdir -p /dmdata/dmbak

1.5 修改目录权限
将新建的路径目录权限的用户修改为dmdba,用户组修改为dinstall
[root@Node1 ~]#:chown -R dmdba:dinstall /dmdata/data
[root@Node1 ~]#:chown -R dmdba:dinstall /dmdata/arch
[root@Node1 ~]#:chown -R dmdba:dinstall /dmdata/dmbak

给路径下的文件设置755权限
[root@Node1 ~]#:chmod -R 755 /dmdata/data
[root@Node1 ~]#:chmod -R 755 /dmdata/arch
[root@Node1 ~]#:chmod -R 755 /dmdata/dmbak

查看

二、安装DM8
2.1 挂载镜像
进入/opt/下,解压安装包。
[root@Node1 ~]#:cd /opt/
[root@Node1 opt]#:ls
dm8_20250122_x86_rh7_64.zip rh
[root@Node1 opt]#:
[root@Node1 opt]#:unzip dm8_20250122_x86_rh7_64.zip
Archive: dm8_20250122_x86_rh7_64.zipinflating: dm8_20250122_x86_rh7_64.iso_SHA256.txt inflating: dm8_20250122_x86_rh7_64.README inflating: dm8_20250122_x86_rh7_64.iso
[root@Node1 opt]#:

挂载到/mnt/下
[root@Node1 opt]#:mount -o loop dm8_20250122_x86_rh7_64.iso /mnt

2.2 命令行安装
切换到dmdba用户。
进入/mnt/目录下。执行安装。
[root@Node1 opt]#:su - dmdba
上一次登录:日 3月 23 22:44:24 CST 2025pts/0 上
[dmdba@Node1 ~]$ cd /mnt
[dmdba@Node1 mnt]$ ll
总用量 974521
-r-xr-xr-x. 1 root root 3011770 1月 22 15:57 DM8 Install.pdf
-r-xr-xr-x. 1 root root 994897045 1月 22 17:00 DMInstall.bin
[dmdba@Node1 mnt]$ ./DMInstall.bin -i
安装语言:
[1]: 简体中文
[2]: English
请选择安装语言 [1]:1 #选择简体中文
解压安装程序.........
硬件架构校验通过!
欢迎使用达梦数据库安装程序是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n #没有key文件,选择n否是否设置时区? (Y/y:是 N/n:否) [Y/y]:y #设置时区
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
[10]: (GTM-03:00) 巴西利亚
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亚速尔群岛
[13]: (GTM) 格林威治标准时间
[14]: (GTM+01:00) 萨拉热窝
[15]: (GTM+02:00) 开罗
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯兰堡
[19]: (GTM+06:00) 达卡
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [21]:21 #选择中国标准时间安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1 #1典型安装
所需空间: 1912M请选择安装目录 [/home/dmdba/dmdbms]: #默认,直接回车
可用空间: 41G
是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y #确认安装路径安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1912M
可用空间: 41G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y #最后确认安装
2025-03-23 14:56:21
[INFO] 安装达梦数据库...
2025-03-23 14:56:22
[INFO] 安装 基础 模块...
2025-03-23 14:56:27
[INFO] 安装 服务器 模块...
2025-03-23 14:56:27
[INFO] 安装 客户端 模块...
2025-03-23 14:56:30
[INFO] 安装 驱动 模块...
2025-03-23 14:56:31
[INFO] 安装 手册 模块...
2025-03-23 14:56:31
[INFO] 安装 服务 模块...
2025-03-23 14:56:32
[INFO] 移动日志文件。
2025-03-23 14:56:32
[INFO] 安装达梦数据库完成。请以root系统用户执行命令:
/home/dmdba/dmdbms/script/root/root_installer.sh安装结束[dmdba@Node1 mnt]$
#exit退出普通用户,根据以上提示信息,在root用户下执行提示的命令
安装完成,切换为root用户,执行提示的命令。创建DmAPService,否则会影响数据库备份。
[root@Node1 opt]#:/home/dmdba/dmdbms/script/root/root_installer.sh
移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
[root@Node1 opt]#:
数据库安装完成后还需要注册实例才能使用数据库
2.3 配置环境变量
需要root用户,进入到dmdba用户的家目录下(/home/dmdba/),配置对应的环境变量。
前两行自动写入了,只需要加入最后一行即可。如果你的没写入,就手动写入即可。根据自己的实际路径写入。
[root@Node1 opt]#:cd /home/dmdba/
[root@Node1 dmdba]#:vim .bash_profile
......
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin"
export DM_HOME="/home/dmdba/dmdbms"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
切换到dmdba用户,使变量生效。
[root@Node1 dmdba]#:su - dmdba
上一次登录:日 3月 23 14:54:11 CST 2025pts/0 上
[dmdba@Node1 ~]$ source .bash_profile
[dmdba@Node1 ~]$
2.4 启动图形化界面
达梦数据库,可启动图形化界面,而无需下载客户端(当然也可以下载客户端),这里在系统里面操作命令。
[root@Node1 ~]#:cd /mnt
[root@Node1 mnt]#:xhost +
access control disabled, clients can connect from any host
[root@Node1 mnt]#:echo $DISPLAY
:0
[root@Node1 mnt]#:
#切换到普通用户dmdba。
[root@Node1 mnt]#:su - dmdba
上一次登录:日 3月 23 15:05:02 CST 2025pts/0 上
[dmdba@Node1 ~]$ export DISPLAY=:0.0
#进入数据库安装路径/home/dmdba/dmdbms/tool/目录下,启动DM管理工具。
[dmdba@Node1 ~]$ cd /home/dmdba/dmdbms/tool/
[dmdba@Node1 tool]$ ls
analyzer console disql dropins dts_cmd_run.sh manager.bmp nca.sh resources
analyzer.bmp console.bmp dmagent dts log4j.xml monitor p2 templates
configuration dbca.sh dmservice.sh dts.bmp manager monitor.bmp plugins version.sh
[dmdba@Node1 tool]$
#执行manager,启动图形化管理工具。
[dmdba@Node1 tool]$ ./manager
启动后就会出现图形化管理工具

如图:

三、配置实例
使用dmdba用户配置实例,进入到/home/dmdba/dmdbms/bin目录下。
使用dminit命令初始化实例,dminit命令可设置多种参数,可执行命令./dminit help查看可配置参数。
[root@Node1 dmdba]#:su - dmdba
上一次登录:日 3月 23 15:09:50 CST 2025pts/2 上
[dmdba@Node1 ~]$
[dmdba@Node1 ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@Node1 bin]$ ./dminit help
initdb V8
db version: 0x7000d
file dm.key not found, use default license!
License will expire on 2026-01-17
version: 03134284336-20250117-257733-20132
格式: ./dminit KEYWORD=value例程: ./dminit PATH=/public/dmdb/dmData PAGE_SIZE=16 SYSDBA_PWD=... SYSAUDITOR_PWD=... [SYSSSO_PWD=...]关键字 说明(默认值)
--------------------------------------------------------------------------------
INI_FILE 初始化文件dm.ini存放的路径
PATH 初始数据库存放的路径
CTL_PATH 控制文件路径
LOG_PATH 日志文件路径
EXTENT_SIZE 数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页
PAGE_SIZE 数据页大小(8),可选值:4, 8, 16, 32,单位:K
LOG_SIZE 日志文件大小(4096),单位为:M,范围为:256M ~ 8G
CASE_SENSITIVE 大小敏感(Y),可选值:Y/N,1/0
CHARSET/UNICODE_FLAG 字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
SEC_PRIV_MODE 权限管理模式(0),可选值:0[TRADITION],1[BMJ],2[EVAL],3[BAIST],4[ZBMM]
SYSDBA_PWD 设置SYSDBA密码
SYSAUDITOR_PWD 设置SYSAUDITOR密码
DB_NAME 数据库名(DAMENG)
INSTANCE_NAME 实例名(DMSERVER)
PORT_NUM 监听端口号(5236)
BUFFER 系统缓存大小(8000),单位M
TIME_ZONE 设置时区(+08:00)
PAGE_CHECK 页检查模式(3),可选值:0/1/2/3
PAGE_HASH_NAME 设置页检查HASH算法
EXTERNAL_CIPHER_NAME 设置默认加密算法
EXTERNAL_HASH_NAME 设置默认HASH算法
EXTERNAL_CRYPTO_NAME 设置根密钥加密引擎
RLOG_ENCRYPT_NAME 设置日志文件加密算法,若未设置,则不加密
RLOG_POSTFIX_NAME 设置日志文件后缀名,长度不超过10。默认为log,例如DAMENG01.log
USBKEY_PIN 设置USBKEY PIN
PAGE_ENC_SLICE_SIZE 设置页加密分片大小,可选值:0、512、4096,单位:Byte
ENCRYPT_NAME 设置全库加密算法
BLANK_PAD_MODE 设置空格填充模式(0),可选值:0/1
SYSTEM_MIRROR_PATH SYSTEM数据文件镜像路径
MAIN_MIRROR_PATH MAIN数据文件镜像
ROLL_MIRROR_PATH 回滚文件镜像路径
MAL_FLAG 初始化时设置dm.ini中的MAL_INI(0)
ARCH_FLAG 初始化时设置dm.ini中的ARCH_INI(0)
MPP_FLAG Mpp系统内的库初始化时设置dm.ini中的mpp_ini(0)
CONTROL 初始化配置文件(配置文件格式见系统管理员手册)
AUTO_OVERWRITE 是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖
USE_NEW_HASH 是否使用改进的字符类型HASH算法(1)
ELOG_PATH 指定初始化过程中生成的日志文件所在路径
AP_PORT_NUM 分布式环境下协同工作的监听端口
HUGE_WITH_DELTA 是否仅支持创建事务型HUGE表(1) 1:是 0:否
RLOG_GEN_FOR_HUGE 是否生成HUGE表REDO日志(1) 1:是 0:否
PSEG_MGR_FLAG 是否仅使用管理段记录事务信息(0) 1:是 0:否
CHAR_FIX_STORAGE CHAR是否按定长存储(N),可选值:Y/N,1/0
SQL_LOG_FORBID 是否禁止打开SQL日志(N),可选值:Y/N,1/0
DPC_MODE 指定DPC集群中的实例角色(0) 0:无 1:MP 2:BP 3:SP,取值1/2/3时也可以用MP/BP/SP代替
USE_DB_NAME 路径是否拼接DB_NAME(1) 1:是 0:否
MAIN_DBF_PATH MAIN数据文件存放路径
SYSTEM_DBF_PATH SYSTEM数据文件存放路径
ROLL_DBF_PATH ROLL数据文件存放路径
TEMP_DBF_PATH TEMP数据文件存放路径
ENC_TYPE 数据库内部加解密使用的加密接口类型(1), 可选值: 1: 优先使用EVP类型 0: 不启用EVP类型
RANDOM_CRYPTO 随机数算法所在加密引擎名
DPC_TENANCY 指定DPC集群是否启用多租户模式(0) 0:不启用 1:启用,取值0/1时也可以用FALSE/TRUE代替
HELP 打印帮助信息
[dmdba@Node1 bin]$
这里:强烈建议用户在首次安装数据库初始化实例时,立即修改数据库系统用户的初始密码,并设置一定的密码强度,以保障数据安全性。
也可以自定义初始化实例的参数
这里我的密码设置为Dmdb_20250323
根据自己的习惯设置密码,复杂度要包含:大小写字母、特殊字符、数字
[dmdba@Node1 bin]$ ./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5236 SYSDBA_PWD=Dmdb_20250323 SYSAUDITOR_PWD=Dmdb_20250323
initdb V8
db version: 0x7000d
file dm.key not found, use default license!
License will expire on 2026-01-17
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /dmdata/data/DMTEST/DMTEST01.loglog file path: /dmdata/data/DMTEST/DMTEST02.logwrite to dir [/dmdata/data/DMTEST].
create dm database success. 2025-03-23 15:16:18
[dmdba@Node1 bin]$
如果这里是自定义的初始化参数,那么在注册服务和启动数据库时应按照自定义参数进行操作。
四、注册服务
注册服务脚本为dm_service_installer.sh。注册服务需要使用root用户进行注册。进入到数据库安装目录的/home/dmdba/dmdbms/script/root下。
[dmdba@Node1 bin]$ exit
登出
[root@Node1 dmdba]#:cd /home/dmdba/dmdbms/script/root/
[root@Node1 root]#:ls
dm_service_installer.sh dm_service_uninstaller.sh root_installer.sh
[root@Node1 root]#:./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMTEST/dm.ini -p DMTEST
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMTEST.service to /usr/lib/systemd/system/DmServiceDMTEST.service.
创建服务(DmServiceDMTEST)完成
[root@Node1 root]#:
进入达梦数据库安装目录下的bin目录中,可以看到已经注册好的服务DmServiceDMTEST。
[root@Node1 root]#:cd /home/dmdba/dmdbms/bin
[root@Node1 bin]#:ll Dm*
-rwxr-xr-x. 1 dmdba dmdba 15447 3月 23 14:56 DmAPService
-rwxr-xr-x. 1 dmdba dmdba 15976 3月 23 14:56 DmAuditMonitorService
-rwxr-xr-x. 1 dmdba dmdba 15140 3月 23 14:56 DmInstanceMonitorService
-rwxr-xr-x. 1 dmdba dmdba 15594 3月 23 14:56 DmJobMonitorService
-rwxr-xr-x. 1 dmdba dmdba 18518 3月 23 15:19 DmServiceDMTEST
[root@Node1 bin]#:
五、启动 停止 查看状态
使用dmdba用户进入DM安装目录下的bin目录下,启动数据库。
#在启动前查看数据库端口,发现没有启动服务。
[root@Node1 bin]#:ss -natp | grep 5236
#切换到dmdba用户
[root@Node1 bin]#:su - dmdba
上一次登录:日 3月 23 15:12:24 CST 2025pts/0 上
[dmdba@Node1 ~]$ cd /home/dmdba/dmdbms/bin
#在该目录下,执行启动文件。看到启动成功。
[dmdba@Node1 bin]$ ./DmServiceDMTEST start
Starting DmServiceDMTEST: [ OK ]
[dmdba@Node1 bin]$
#这时候再次查看端口,发现服务启动成功。
[dmdba@Node1 bin]$ ss -natp | grep 5236
LISTEN 0 128 [::]:5236 [::]:* users:(("dmserver",pid=6897,fd=3))
[dmdba@Node1 bin]$
#查看状态
[dmdba@Node1 bin]$ ./DmServiceDMTEST status
DmServiceDMTEST (pid 6897) is running.
[dmdba@Node1 bin]$
#重启数据库。
[dmdba@Node1 bin]$ ./DmServiceDMTEST restart
Stopping DmServiceDMTEST: [ OK ]
Starting DmServiceDMTEST: [ OK ]
[dmdba@Node1 bin]$
#停止数据库 [dmdba@Node1 bin]$ ./DmServiceDMTEST stop
#这里就不停止了。

如何在命令行进入数据库,登录数据库
使用命令,也可以绝对路径启动:
./disql 用户名/密码@主机:端口
./disql SYSDBA/Dmdb_20250323@localhost:5236
[dmdba@Node1 bin]$ exit
登出
[root@Node1 bin]#:cd /home/dmdba/dmdbms/bin
[root@Node1 bin]#:./disql SYSDBA/Dmdb_20250323@localhost:5236服务器[localhost:5236]:处于普通打开状态
登录使用时间 : 5.961(ms)
disql V8
SQL>
SQL>
[root@Node1 bin]#:
进入数据库后,可以exit退出。
六、数据库客户端连接
我们在第2.4节启动了图形化管理界面。可以使用客户端连接DM库。
执行/home/dmdba/dmdbms/tool/下的manager启动客户端工具。
点击新建连接

在弹出的新建数据库连接窗口,输入密码:Dmdb_20250323
根据自己设置的密码输入。
主机名:localhost
端口:默认5236
验证方式:默认
用户名:SYSDBA
口令:[密码]
连接名可以自己起,我这里叫localhost。也可以是本机ip地址

可以点击测试一下看是否能连上。显示连接成功。

点击连接,成功连接到数据库。

成功登录!
---end---
相关文章:
国产达梦(DM)数据库的安装(Linux系统)
目录 一、安装前的准备工作 1.1 导包 1.2 创建用户和组 1.3 修改文件打开最大数 1.4 目录规划 1.5 修改目录权限 二、安装DM8 2.1 挂载镜像 2.2 命令行安装 2.3 配置环境变量 2.4 启动图形化界面 三、配置实例 四、注册服务 五、启动 停止 查看状态 六、数据库客…...
AI日报 - 2025年3月24日
🌟 今日概览(60秒速览) ▎🤖 AGI突破 | Lyra生物序列建模架构效率惊人 在100生物任务中达最优,推理速度提升高达12万倍 ▎💼 商业动向 | OpenAI用户破4亿,Meta与Reliance探讨AI合作 生态扩展与全…...
git的底层原理
git的底层原理 三段话总结git, 1. 工作原理:git管理是一个DAG有向无环图,HEAD指针指向branch或直接指向commit,branch指向commit,commit指向tree,tree指向别的tree或直接指向blob。 2. git所管理的一个目录…...
【Spring】Spring框架介绍
在 Java 企业级应用开发领域,Spring 框架凭借强大功能、高度灵活性与卓越扩展性,成为众多开发者构建大型应用系统的首选。接下来为大家深入剖析 Spring 框架的核心特性、架构设计及实际项目应用。 一、Spring 框架简介 Spring 框架由 Rod Johnson …...
MATLAB+Arduino利用板上的按键控制板上Led灯
几年不使用,之前的知识都忘掉了。需要逐步捡起来。 1 熟悉按键的使用 2熟悉灯的控制 1 电路 我们将通过 MATLAB 的 Arduino 支持包与 Arduino 板通信,读取按键状态并控制 LED 灯的亮灭。 按键:连接到 Arduino 的数字引脚(例如…...
AI比人脑更强,因为被植入思维模型【21】冯诺依曼思维模型
定义 冯诺依曼思维模型是一种基于数理逻辑和系统分析的思维方式,它将复杂的问题或系统分解为若干个基本的组成部分,通过建立数学模型和逻辑规则来描述和分析这些部分之间的关系,进而实现对整个系统的理解和优化。该模型强调从整体到局部、再…...
【QA】Qt中有哪些命令模式的运用?
在 C/Qt 中,命令模式(Command Pattern)的实现通常用于封装操作请求、支持撤销/重做(Undo/Redo)或解耦调用者与接收者。以下是几种常见的实现方式及示例: 1. Qt 的 QUndoCommand 和 QUndoStack(内…...
【连续自然数的和,双指针找区间】
对一个给定的正整数 MM,求出所有的连续的正整数段(每一段至少有两个数),这些连续的自然数段中的全部数之和为 MM。 例子:19981999200020012002100001998199920002001200210000,所以从 19981998 到 2002200…...
Cocos Creator Shader入门实战(五):材质的了解、使用和动态构建
引擎:3.8.5 您好,我是鹤九日! 回顾 前面的几篇文章,讲述的主要是Cocos引擎对Shader使用的一些固定规则,这里汇总下: 一、Shader实现基础是OpenGL ES可编程渲染管线,开发者只需关注顶点着色器和…...
vue设置自定义logo跟标题
准备 Logo 图片 将自定义的 Logo 图片(如 logo.png)放置在项目的 public文件夹下。 使用环境变量设置 Logo 和标题(可选) 创建或修改 .env 文件 在项目根目录下创建或修改 .env 文件,添加以下内容: VITE_A…...
Linux 账号和权限管理命令选项解释
用户账号文件 配置文件 /etc/passwd:用于保存用户 输出如下: root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin 每一行代表一个用户&…...
尝试在软考65天前开始成为软件设计师-计算机网络
OSI/RM 七层模型 层次名功能主要协议7应用层实现具体应用功能 FTP(文件传输)、HTTP、Telnet、 POP3(邮件)SMTP(邮件) ------- DHCP、TFTP(小文件)、 SNMP、 DNS(域名) 6表示层数据格式,加密,压缩.....5会话层建立,管理&终止对话4传输层端到端连接TCP,UDP3网络层分组传输&a…...
VMware主机换到高配电脑,高版本系统的问题
原来主机是i3 ,windows7系统,vmware 14.0,虚机系统是ubuntu 14.04。目标新机是i7 14700KF,windows11系统。原以为安装虚拟机,将磁盘文件,虚拟机配置文件拷贝过去可以直接用。 新目标主机先安装了vmware 15,运行原理虚机࿰…...
2025年3月 CCF GESP C++ 二级 真题解析
1. 单选题(每题2分,共30分) 第1题 试题:2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是贺岁片《哪吒2》票房惊人,入了全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是( )。 A. 《哪吒2》是一…...
Nginx请求头Hos头攻击
HTTP请求头中的Host字段用于指定客户端请求的目标主机名(域名/IP)。当Nginx作为反向代理时,可利用该字段进行访问控制,防止非法域名或IP直接访问服务。 解决方法:添加判断请求头,如果不是指定请求头&#…...
2025年03月10日人慧前端面试(外包滴滴)
目录 普通函数和箭头函数的区别loader 和 plugin 的区别webpack 怎么实现分包,为什么要分包webpack 的构建流程变量提升react 开发中遇到过什么问题什么是闭包vue 开发中遇到过什么问题vue中的 dep 和 watcher 的依赖收集是什么阶段什么是原型链react setState 是同…...
【Linux内核系列】:动静态库详解
🔥 本文专栏:Linux 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 有些鸟儿是注定是关不住的,因为它们的每一片羽翼都沾满了自由的光辉 ★★★ 本文前置知识: 编译与链接的过程…...
maptalks图层交互 - 模拟 Tooltip
maptalks图层交互 - 模拟 Tooltip 图层交互-模拟tooltip官方文档 <!DOCTYPE html> <html><meta charsetUTF-8 /><meta nameviewport contentwidthdevice-width, initial-scale1 /><title>图层交互 - 模拟 Tooltip</title><style typet…...
windows环境下NER Python项目环境配置(内含真的从头安的perl配置)
注意 本文是基于完整项目的环境配置,即本身可运行项目你拿来用 其中有一些其他问题,知道的忽略即可 导入pycharm基本包怎么下就不说了(这个都问?给你一拳o(`ω*)o) 看perl跳转第5条 1.predict报错多个设备…...
IDEA批量替换项目下所有文件中的特定内容
文章目录 1. 问题引入2. 批量替换项目下所有文件中的特定内容2.1 右键项目的根目录,点击在文件中替换2.2 输入要替换的内容 3. 解决替换一整行文本后出现空行的问题4. 增加筛选条件提高匹配的精确度 更多 IDEA 的使用技巧可以查看 IDEA 专栏: IDEA 1. 问…...
【计算机网络】网络编程
文章目录 1. 客户端/服务器2. TCP/UDP协议3. 网络编程套接字-socket3.1 API的使用3.1 DatagramScoket类3.1 DatagramScoket类 4. 通过UDP实现回显服务器程序4.1 服务器代码4.2 客户端代码4.3 代码执行过程4.4 通过UDP实现翻译客户端 5. 通过TCP实现回显服务器5.1 服务器代码5.2…...
Django 中@login_required 配置详解
在 Django 中对 login_required 进行配置,主要涉及全局配置和视图函数局部配置两方面,下面为你详细介绍配置方法。 全局配置 全局配置主要是设定默认的登录 URL,也就是当未登录用户尝试访问被 login_required 装饰的视图时,会被…...
【408--复习笔记】数据结构
【408--复习笔记】数据结构 1.绪论2.线性表3.栈、队列、数组4.串5.树与二叉树6.图7.查找8.排序 1.绪论 2.线性表 3.栈、队列、数组 4.串 5.树与二叉树 6.图 7.查找 8.排序...
Android <queries>声明的作用和配置方法
在Android应用中使用resolveActivity方法会提示在清单文件中添加标签,下面我们就看下声明的作用和配置方法: 一、queries 声明的作用 在Android 11及更高版本中,声明被引入以控制应用之间的交互。通过在AndroidManifest.xml中添加标签&…...
C++多线程编程:从创建到管理的终极指南
在高性能计算时代,掌握多线程编程是提升程序效率的必修课!本文将手把手教你如何用C++11标准库轻松创建和管理线程,告别单线程的“龟速”,让代码跑出多核CPU的性能! 一、多线程为何重要? 充分利用多核CPU:现代计算机普遍支持多核并行,多线程可让程序性能指数级提升。提升…...
【蓝桥杯】4535勇闯魔堡(多源BFS + 二分)
思路 k有一个范围(0到怪物攻击的最大值),求满足要求的k的最小值。很明显的二分套路。 关键是check函数怎么写,我们需要找到一条从第一行到最后一行的路径,每一次可以从上下左右四个方向前进,那么我么可以用…...
HTML图像标签的详细介绍
1. 常用图像格式 格式特点适用场景JPEG有损压缩,文件小,不支持透明适合照片、复杂图像PNG无损压缩,支持透明(Alpha通道)适合图标、需要透明背景的图片GIF支持动画,最多256色简单动画、低色彩图标WebP谷歌开…...
Chapter 4-15. Troubleshooting Congestion in Fibre Channel Fabrics
show zone member: Shows the name of the zone to which a device belongs to. This command can be used to find the victims of a culprit device or vice versa. 显示设备所属的区域名称。该命令可用于查找罪魁祸首设备的受害者,反之亦然。 show zone active: Shows the…...
QT三 自定义控件
一 自定义控件 现在的需求是这样: 假设我们要在QWidget 上做定制,这个定制包括了关于 一些事件处理,意味着要重写QWidget的一些代码,这是不实际的,因此我们需要自己写一个MyWidget继承QWidget,然后再MyWi…...
在 ASP .NET Core 9.0 中使用 Scalar 创建漂亮的 API 文档
示例代码:https://download.csdn.net/download/hefeng_aspnet/90407900 Scalar 是一款可帮助我们为 API 创建精美文档的工具。与感觉有些过时的默认 Swagger 文档不同,Scalar 为 API 文档提供了全新而现代的 UI。其简洁的设计让开发人员可以轻松找到测试…...
