国产达梦(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 启动图形化界面 三、配置实例 四、注册服务 五、启动 停止 查看状态 六、数据库客…...
mapper.xml中 “http://mybatis.org/dtd/mybatis-3-mapper.dtd“> 报错的解决方法
我用mybatisx自动生成代码,但是mapepr.xml中的 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">报错,如下图,圈起来的部分是之前的报错,现在已经解决,所以没有爆红: 解决方法:…...
01_JavaScript
目录 一、js介绍、能做什么 --了解 二、JavaScript的组成-重点 三、JavaScript代码的书写位置 行内JS 内嵌 JS 外链 JS 四、JS 中的注释 单行 多行 五、变量(重点) 定义变量及赋值 变量的命名规则和命名规范 六、数据类型(重…...
数组作为哈希表的妙用:寻找缺失的第一个正数
数组作为哈希表的妙用:寻找缺失的第一个正数 大家好,我是Echo_Wish,今天我们来探讨一个经典的算法问题——“缺失的第一个正数”。听起来可能有点简单,但它实际上是一个非常有意思且富有挑战性的题目,在面试中常常会碰…...
JAVA学习*Object类
Object类 Object类是所有类的父类 类中有一些方法(都需要掌握) toString()方法 在学习类的对象的时候有介绍过了,当我们重新给此方法就会打印类与对象的信息 equals()方法 在Java中的比较, 如果左右两侧是基本类型变量&#…...
《论语别裁》第02章 为政(03)星辰知多少
第二个问题说到“北辰”。我们中国文化发达得最早的是天文。过去我们把天体分成二十八宿和三垣——紫微、少微、太微,类似于我们现在讲天文的经纬度。经纬度是西方的划分法。曾经有位天文学家主张,我们自己重新划过,不照西方的度数划…...
git_version_control_proper_practice
git_version_control_proper_practice version control,版本控制的方法之一就是打tag 因为多人协作的项目团队,commit很多,所以需要给重要的commit打tag,方便checkout,检出这个tag 参考行业的实践方式。如图git、linux…...
playwright-go实战:自动化登录测试
1.新建项目 打开Goland新建项目playwright-go-demo 项目初始化完成后打开终端输入命令: #安装项目依赖 go get -u github.com/playwright-community/playwright-go #安装浏览器 go run github.com/playwright-community/playwright-go/cmd/playwrightlatest insta…...
手机扫描仪 含PDF转word功能+OCR识别110种语言
TapScanner Premium 是一款功能强大的手机扫描仪应用,支持 PDF 合并、分割以及转换为 Word 文档格式,还具备 OCR 识别功能,可识别 110 种语言。汉化中文且已激活全部功能,可免费使用。 该应用操作简洁,扫描文档、收据…...
数据可视化在商业智能中的应用:从数据到洞察的桥梁
数据可视化在商业智能中的应用:从数据到洞察的桥梁 大家好,我是Echo_Wish。今天,我们来探讨一个数据领域的热门话题——数据可视化在商业智能中的应用。在数据驱动的时代,如何从海量的数字和信息中提炼出有价值的洞察,成为了企业决策的关键。而数据可视化,正是将枯燥的数…...
【HarmonyOS Next的奇幻大冒险】DevEco Studio的AI助手CodeGenie挺好用
遇到些问题在官网搜不出答案,CodeGenie都给解决了! 不过我的问题可能比较初级,往后再看看它的能力怎么样 下面的截图是关于其中一个问题的对话。可见CodeGenie干脆利索,并且给出了相关知识点在官网上的参考信息链接,大…...
替代-UX设计师
初创公司如何在没有设计师的情况下 打造实用的用户体验 一个常见的捷径是使用预构建的组件库,如谷歌的 Material UI它们为你提供了构建块,但它们并没有为你考虑整个用户流程你仍然需要弄清楚所有这些是如何组合在一起的但是,很多时候&#x…...
ISIS-1 ISIS概述
前面几章我们介绍了OSPF的基础工作原理以及怎样交互LSA形成LSDB链路状态数据库的 这一章我们来介绍另一个链路状态路由协议,ISIS路由协议 一、概述 ISIS(Intermediate System to Intermediate System,中间系统到中间系统)是由ISO(International Organization for Standardiza…...
电脑上不了网普通用户排除方法
1:首先通过电脑的运行/CMD/ipconfig /all 命令查看电脑的ip地址是否正常如图: 2:在命令行中运行:ping 127.0.0.1 如图则正常,否则要重新安装网卡驱动 程序。 3:用ping命令,ping一下同网段的电…...
Qt 控件概述 QLCDNumber 和 Progressbar
目录 QLCDNumber 进度条 定时器进度条的实现 通过stylesheet来改变进度条颜色 QLCDNumber LCD数字显示器 实现一个定时器 QLCDNumber 进度条 定时器进度条的实现 为什在Widget.h种头文件并没有包含QTimer这个头文件,却还可以申明一个TImer指针呢?…...
2025.03.21首板涨停股票分析
目录 1 涨停原因分析2 交易建议 1 涨停原因分析 2 交易建议...
数据库的DDL操作
目录 一、创建数据库 (1)字符集和校验集 二、操作数据库 (1)查看数据库 (2)显示创建语句 (3)修改数据库 (4)删除数据库 三、数据库的备份与恢复 四、…...
Docker 部署 Graylog 日志管理系统
Docker 部署 Graylog 日志管理系统 前言一、准备工作二、Docker Compose 配置三、启动 Graylog 服务四、访问 Graylog Web 界面总结 前言 Graylog 是一个开源的日志管理平台,专为实时日志收集、分析和可视化设计。它支持强大的搜索功能,并且与 Elastics…...
特征工程自动化(FeatureTools实战)
目录 特征工程自动化(FeatureTools实战)1. 引言2. 项目背景与意义2.1 特征工程的重要性2.2 自动化特征工程的优势2.3 工业级数据处理需求3. 数据集生成与介绍3.1 数据集构成3.2 数据生成方法4. 自动化特征工程理论基础4.1 特征工程的基本概念4.2 FeatureTools库简介4.3 关键公…...
Linux:xxx is not in the sudoers file. This incident will be reported.
报错 xxx is not in the sudoers file. This incident will be reported.解决方式 切换到root用户下操作 # 1、修改/etc/sudoers文件为可修改,默认是只读的 ls -lh /etc/sudoers -r--r----- 1 root root 4.3K Dec 1 01:45 /etc/sudoerschmod uw /etc/sudoersls…...
fastapi+playwright爬取google搜索1-3页的关键词返回json
1,playwright无头 2,代理池随机获取代理ip 3,随机浏览行为,随机页面滚动 4,启用stealth模式 5,随机延时搜索 from fastapi import FastAPI, HTTPException from fastapi.responses import JSONResponse import asyncio from concurrent.futures import ThreadPool…...
论文阅读笔记:Denoising Diffusion Probabilistic Models (3)
论文阅读笔记:Denoising Diffusion Probabilistic Models (1) 论文阅读笔记:Denoising Diffusion Probabilistic Models (2) 论文阅读笔记:Denoising Diffusion Probabilistic Models (3) 4、损失函数逐项分析 可以看出 L L L总共分为了3项…...
FlauBERT:面向法语的无监督语言模型预训练
摘要 语言模型已成为在许多不同自然语言处理(NLP)任务中取得最先进成果的关键步骤。利用当今可用的大量未标注文本,它们提供了一种有效的方式来预训练连续词表示,这些表示可以在下游任务中进行微调,并在句子级别上进行…...
JavaScript严格模式
文章主要介绍JavaScript严格模式,包括启用原因、方式以及需避开的常见陷阱,助力开发者写出更健壮代码。 1. 启用原因:将普通JavaScript中的“静默错误”变为抛出错误,有助于编写健壮代码;修复阻碍JavaScript引擎优化的…...
文件上传的小点总结(1)
2.文件类型绕过 问题插入:BP无法拦截本地流量 ①插件限制 不代理的地址列表通常写有localhost和127.0.0.1,把本地的全都删掉,然后应用保存。 ②浏览器限制 Firefox浏览器设置:检查浏览器代理配置和proxy listeners都没问题后&…...
2024年数维杯数学建模B题生物质和煤共热解问题的研究解题全过程论文及程序
2024年数维杯数学建模 B题 生物质和煤共热解问题的研究 原题再现: 随着全球能源需求的不断增长和对可再生能源的追求,生物质和煤共热解作为一种潜在的能源转化技术备受关注。生物质是指可再生能源,源自植物和动物的有机物质,而煤…...
@maptalks/gl-layers中的VectorTileLayer的Symbol样式文档
maptalks/gl-layers中的VectorTileLayer的Symbol样式文档 矢量的Symbol样式分为以下几个大类: marker样式属性,定义了图标相关样式属性 text样式属性,定义了文字相关样式属性 line样式属性,定义了线相关的样式属性 polygon样式属…...
OpenCV旋转估计(3)帮助构建一个最大生成树(Maximum Spanning Tree)函数findMaxSpanningTree()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::detail::findMaxSpanningTree 是 OpenCV 中用于图像拼接工作流的一个函数,它帮助构建一个最大生成树(Maximum Spanni…...
OpenCV HighGUI 模块使用指南(Python 版)
用户让我编写一个 HighGUI 模块的使用指南,包括函数的使用和应用场景的实现。首先,我需要回顾 HighGUI 模块的主要功能:图像显示、视频捕获、鼠标和键盘事件。然后,按照用户提供的结构,整理每个部分的函数详解、代码示…...
SPI 机制与 Spring Boot AutoConfiguration 对比解析
一、架构效率革命性提升 1.1 类加载效率跃升 Spring Boot 2.7引入的AutoConfiguration.imports采用清单式配置加载,对比传统SPI机制: 传统SPI扫描路径:META-INF/services/** Spring Boot新方案:META-INF/spring/org.springfram…...
算法基础篇(1)(蓝桥杯常考点)
算法基础篇 前言 算法内容还有搜索,数据结构(进阶),动态规划和图论 数学那个的话大家也知道比较难,放在最后讲 这期包含的内容可以看目录 模拟那个算法的话就是题说什么写什么,就不再分入目录中了 注意事…...
【蓝桥杯速成】| 10.回溯切割
前面两篇内容我们都是在做有关回溯问题的组合应用 今天的题目主题是:回溯法在切割问题的应用 题目一:分割回文串 问题描述 131. 分割回文串 - 力扣(LeetCode) 给你一个字符串 s,请你将 s 分割成一些 子串ÿ…...
【Spring】深入理解 Spring 事务管理
文章目录 一、事务的基本概念原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability) 二、Spring 事务管理的优势简化事务管理代码提供多种事务管理方式整合…...
java学习笔记6
按住shift键,选择开始的一位和最后结束的一位来全选 面向对象特征之二:继承性(inheritance) 面向对象特征之二:继承性1.继承性的理解 > 生活上:财产的继承、颜值的继承 > 代码层面:> 自上而下:定义了一个类A,在定义另一个类B时&…...
人工智能在现代科技中的应用和未来发展趋势
人工智能(Artificial Intelligence,AI)是一种模拟人类智能思维和行为的技术,已经在现代科技中得到广泛应用。以下是人工智能在现代科技中的应用和未来发展趋势: 应用: 机器学习:机器学习是人工…...
第二十一章:模板与继承_《C++ Templates》notes
模板与继承 重点和难点编译与测试说明第一部分:多选题 (10题)第二部分:设计题 (5题)答案与详解多选题答案:设计题参考答案 测试说明 重点和难点 21.1 空基类优化(EBCO) 知识点 空基类优化(Empty Base Cla…...
STC89C52单片机学习——第35节: [16-1] AD/DA
写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.03.23 51单片机学习——第35节: [16-1] AD/DA 前言开发板说明引用解答和科普一、AD问题…...
算法-最大公约数
1、约数: 1.1 试除法求约数 原理:只需要遍历最小的约数即可,较大的那个可以直接算出来。 import java.util.*; public class Main {static Scanner sc new Scanner(System.in);public static void main(String[] args) {int t sc.nextIn…...
在 SaaS 应用上构建 BI 能力的实战之路
SaaS 产品在持续运营过程中积累了大量数据,这些数据不仅是数字的记录,更是洞察市场趋势、优化产品功能、提升用户体验的宝贵资源。 因此,大部分的 SaaS 产品在发展到一定阶段后,都会开始构建自己的报表模块或分析模块,…...
代码随想录刷题day51|(二叉树篇)654.最大二叉树
一、二叉树基础知识 详见:代码随想录刷题day34|(二叉树篇)二叉树的递归遍历-CSDN博客 二、递归思路 递归三部曲 构造树一般采用前序遍历,因为先构造中间节点,然后递归构造左子树和右子树; 1.递归函数参数…...
深入理解 C++11 智能指针:独占、共享与弱引用的完美管理
文章目录 std::unique_ptr(独占式智能指针)std::shared_ptr(共享式智能指针)std::weak_ptr(弱引用智能指针)示例展示:智能指针的原理内存泄漏**什么是内存泄漏,内存泄漏的危害****如…...
1.2 编译器结构
编译器具有模块化的高层结构。还可以将模块化进一步细化。编译器可以看成多个阶段构成的流水线结构。 一种没有优化的编译器结构 更复杂的编译器结构...
文件操作助手
文件操作助手 在我们实现一个大型项目时,往往会有一个公共模块,这个公共模块是公用的,里面可能会包含文件操作助手、字符串操作助手、时间戳操作助手… 而我们今天就来实现一个文件操作助手,里面包含的功能有: 判断…...
线段树与扫描线 —— 详解算法思想及其C++实现
目录 一、线段树(Segment Tree) 基本概念 结构 操作 示例代码 二、扫描线(Sweep Line) 基本概念 应用场景 示例代码(矩形面积并集) 三、总结 一、线段树(Segment Tree) 基本…...
Leetcode 刷题笔记1 图论part04
leetcode 110 字符串接龙 def judge(s1, s2):count 0for i in range(len(s1)):if s1[i] ! s2[i]:count 1return count 1if __name__ __main__:n int(input())begin_str, end_str map(str, input().split())if begin_str end_str:print(0)exit()strlist []for _ in ran…...
快速入手:Nacos融合SpringCloud成为注册配置中心
快速入手:Nacos融合SpringCloud成为注册配置中心 前言安装Nacos项目搭建添加配置启动类添加注解运行项目服务调用RestTemplate 模式FeignClient 模式 前言 Spring Cloud是一系列框架的集合,提供了微服务架构下的各种解决方案,如服务治理、配…...
others-rustdesk远程
title: others-rustdesk远程 categories: Others tags: [others, 远程] date: 2025-03-19 10:19:34 comments: false mathjax: true toc: true others-rustdesk远程, 替代 todesk 的解决方案 前篇 官方 服务器 - https://rustdesk.com/docs/zh-cn/self-host/rustdesk-server-o…...
go:前后端分离
1.前端代码 新建一个前端文件夹,在该文件夹下新建一个.html文件,写入自己的html代码。 前端搞定。 2.后端代码 其核心是挂载路由接受前端传来的数据核心代码如下: func main() { // 服务运行提示 fmt.Println("go web server is runn…...
lodash 学习笔记/使用心得
lodash 学习笔记/使用心得 简单记一下 lodash 的一点学习笔记使用心得,最近也是打算清理一下所有的 dead code,然后发现我们用了好多的 lodash 方法。对比了之前的写法,重新看了一下官方文档,再自己重新动手写了点 util 之后发现…...
网络爬虫【爬虫库request】
我叫不三不四,很高兴见到大家,欢迎一起学习交流和进步 今天来讲一讲爬虫 Requests是Python的一个很实用的HTTP客户端库,完全满足如今网络爬虫的需求。与Urllib对比,Requests不仅具备Urllib的全部功能;在开发使用上&…...