linux下安装达梦数据库v8详解
目录
操作系统、数据库
1、下载达梦数据库
2、安装前准备
2.1、建立数据库用户和组
2.2、修改文件打开最大数
2.3、挂载镜像
2.4、新建安装目录
3、数据库安装
4、配置环境变量
5、初始化数据库实例
6、注册服务
7、使用数据库
8、卸载数据库
9、多实例管理
10、windows DM管理工具
10.1、下载安装windows DM管理工具
10.1、下载安装windows DM管理工具
11、文档查看
11.1、在线文档
11.2、安装程序中的本地文档
操作系统、数据库
操作系统:Debian 10
数据库:达梦数据库v8
1、下载达梦数据库
官方下载链接:产品下载 | 达梦数据库
官方安装文档:安装前准备 | 达梦技术文档
文件名:dm8_20230104_x86_rh6_64.zip
2、安装前准备
2.1、建立数据库用户和组
注意
安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。
建立数据库用户组、建立数据库用户、设置数据库用户密码
groupadd -g 12349 dinstall
useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
2.2、修改文件打开最大数
重启服务器后永久生效
使用 vi 编辑器打开 /etc/security/limits.conf 文件,在最后添加四条语句,命令如下:
vi /etc/security/limits.confdmdba hard nofile 65537
dmdba soft nofile 65537
dmdba hard stack 32768
dmdba soft stack 16384
切换到 dmdba 用户,查看是否生效,命令如下:
su - dmdbaulimit -a
2.3、挂载镜像
切换到 root 用户,将 DM 数据库的 iso 安装包挂载在任意位置,例如 /dm 目录下,
新建挂载目录/dm
mkdir /dm
进入iso所在目录,这里的pathToIso修改为实际ISO所在目录。
cd pathToIso/dm8_20230104_x86_rh6_64.iso
执行如下命令挂载镜像:
mount -o loop dm8_20230104_x86_rh6_64.iso /dm
2.4、新建安装目录
在达梦家目录下创建 /dm 文件夹,用来安装 DM 数据库。命令如下:
mkdir /home/dmdba/dm
注意
使用 root 用户建立文件夹,待 dmdba 用户建立完成后
,需将文件所有者更改为 dmdba 用户,否则无法安装到该目录下
修改安装目录权限
将新建的安装路径目录权限的用户修改为 dmdba,用户组修改为 dinstall。命令如下:
chown dmdba:dinstall -R /home/dmdba/dm
给安装路径下的文件设置 755 权限。命令如下:
chmod -R 755 /home/dmdba/dm
3、数据库安装
切换到数据库用户进行安装
su - dmdba
进入达梦iso挂载目录,执行安装命令
cd /dm
./DMInstall.bin -i
由于数据库安装服务非root用户,无法创建服务。
需要以root用户执行下述脚本:建立数据库配置文件,进行数据库服务创建,配置systemd服务管理,配置开机自启动。
4、配置环境变量
切换到 root 用户进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入。
添加path环境变量,命令如下:
编辑 $DM_HOME/.bash_profile,使其最终效果如下图所示:
cd /home/dmdba/
vim .bash_profile
加入一行
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
然后切换至 dmdba 用户下,执行以下命令,使环境变量生效。
su - dmdba
source .bash_profile
5、初始化数据库实例
命令行初始化数据库实例
使用 dmdba 用户始化数据库实例,进入到 DM 数据库安装目录下的 bin 目录中,使用 dminit 命令初始化实例。
dminit 命令可设置多种参数,可执行如下命令查看可配置参数
./dminit help
关键字 | 说明(默认值) |
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 | 日志文件大小(256),单位为:M,范围为:256M~2G |
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[ZB] |
LENGTH_IN_CHAR VARCHAR | 类型长度是否以字符为单位(N),可选值:Y/N,1/0 |
SYSDBA_PWD | 设置SYSDBA密码(SYSDBA) |
SYSAUDITOR_PWD | 设置SYSAUDITOR密码(SYSAUDITOR) |
DB_NAME | 数据库名(DAMENG) |
INSTANCE_NAME | 实例名(DMSERVER) |
PORT_NUM | 监听端口号(5236) |
BUFFER | 系统缓存大小(100),单位M |
TIME_ZONE | 设置时区(+08:00) |
PAGE_CHECK | 页检查模式(1),可选值:0/1/2 |
PAGE_HASH_NAME | 设置页检查HASH算法 |
EXTERNAL_CIPHER_NAME | 设置默认加密算法 |
EXTERNAL_HASH_NAME | 设置默认HASH算法 |
EXTERNAL_CRYPTO_NAME | 设置根密钥加密引擎 |
RLOG_ENCRYPT_NAME | 设置日志文件加密算法,若未设置,则不加密 |
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 | 分布式环境下协同工作的监听端口 |
DFS_FLAG | 初始化时设置dm.ini中的DFS_INI(0) |
DFS_PATH | 启用dfs时指定数据文件的缺省路径 |
DFS_HOST | 指定连接分布式系统DFS的服务地址(localhost) |
DFS_PORT | 指定连接分布式系统DFS的服务端口号(3332) |
DFS_COPY_NUM | 指定分布式系统的副本数(3) |
DFS_DB_NAME | 指定分布式系统的中数据库名(默认与DB_NAME一致) |
SHARE_FLAG | 指定分布式系统中该数据库的共享属性(0) |
REGION_MODE | 指定分布式系统中该数据库的系统表空间数据文件的区块策略(0) 0:微区策略 1:宏区策略 |
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代替 |
HELP | 打印帮助信息 |
使用如下命令初始化数据库
dmdba@debian:~/dmdbms/bin$ ./dminit path=/home/dmdba/dm/data db_name=DAMENG instance_name=DMSERVER port_num=5236 CASE_SENSITIVE=0 CHARSET=1
数名 | 说明 |
---|---|
path=/home/dmdba/dm/data | 初始数据库存放的路径 |
db_name=DAMENG | 数据库名(DAMENG) |
instance_name=DMSERVER | 实例名(DMSERVER) |
port_num=5236 | 监听端口号(5236) |
下面是官方描述:供参考
需要注意的是页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 这四个参数,一旦确定无法修改,需谨慎设置。
extent_size 指数据文件使用的簇大小,即每次分配新的段空间时连续的页数。只能是 16 页或 32 页或 64 页之一,缺省使用 16 页。
page_size 数据文件使用的页大小,可以为 4 KB、8 KB、16 KB 或 32 KB 之一,选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降,缺省使用 8 KB。
case_sensitive 标识符大小写敏感,默认值为 Y 。当大小写敏感时,小写的标识符应用双引号括起,否则被转换为大写;当大小写不敏感时,系统不自动转换标识符的大小写,在标识符比较时也不区分大小写,只能是 Y、y、N、n、1、0 之一。
charset 字符集选项。0 代表 GB18030;1 代表 UTF-8;2 代表韩文字符集 EUC-KR;取值 0、1 或 2 之一。默认值为 0。
可以使用默认参数初始化实例,需要附加实例存放路径。此处以初始化实例到 /dm/data 目录下为例(执行初始化命令前,需要使用 root 用户授予 /dm/data 目录相应权限,可以参考修改目录权限),初始化命令如下:
./dminit path=/dm/data
dminit 默认参数
也可以自定义初始化实例的参数,参考如下示例:
以下命令设置页大小为 32 KB,簇大小为 32 KB,大小写敏感,字符集为 utf_8,数据库名为 DMDB,实例名为 DBSERVER,端口为 5237。
./dminit path=/dm/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y
CHARSET=1 DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5237
dminit 设置参数
注意
如果此处自定义了初始化参数,在后面的注册服务和启动数据库等步骤中,请按实际的自定义参数进行操作。
至此完成了DM数据库的命令行安装及初始化
6、注册服务
给刚初始化的数据库创建后台服务
需使用root用户创建
服务名叫做DmServiceDMSERVER
su - rootcd /home/dmdba/dmdbms/script/root./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dm/data/DAMENG/dm.ini -p DMSERVER会自动创建systemd服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service → /lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
root@debian:/home/dmdba/dmdbms/script/root# 设置服务开机自启动,并开启服务。
systemctl enable DmServiceDMSERVER开启服务
systemctl start DmServiceDMSERVER查看服务
systemctl status DmServiceDMSERVERroot@debian:/home/dmdba/dmdbms/script/root#
● DmServiceDMSERVER.service - DM Instance Service(DmServiceDMSERVER).Loaded: loaded (/lib/systemd/system/DmServiceDMSERVER.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2023-04-03 05:16:08 PDT; 2s agoProcess: 79472 ExecStart=/home/dmdba/dmdbms/bin/DmServiceDMSERVER start (code=exited, status=0/SUCCESS)Main PID: 79495 (dmserver)Tasks: 66Memory: 544.4MCGroup: /system.slice/DmServiceDMSERVER.service└─79495 /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dm/data/DAMENG/dm.ini -noconsoleApr 03 05:15:53 debian systemd[1]: Starting DM Instance Service(DmServiceDMSERVER)....
Apr 03 05:16:08 debian DmServiceDMSERVER[79472]: [39B blob data]
Apr 03 05:16:08 debian systemd[1]: Started DM Instance Service(DmServiceDMSERVER)..
root@debian:/home/dmdba/dmdbms/script/root#
命令行参数如下:
7、使用数据库
登录数据库
su - dmdba
cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA@LOCALHOST:5236
格式:账号/口令@网络地址:端口号
账户:SYSDBA管理员账户
口令:初始化数据库可以指定,如没指定默认SYSDBA
端口号:初始化数据库指定的PORT_NUM
dmdba@debian:~/dmdbms/bin$ ./disql SYSDBA/SYSDBA@LOCALHOST:5236
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.979(ms)
disql V8
SQL> helpHELP
----显示打印信息,键入HELP或者 ? .HELP|? [topic]APPEND 添加文本到当前行的末尾。COLUMN 描述指定列的信息。CONNECT 连接到服务器。CLEAR 重置或清理指定操作的缓存。DISCONNECT 提交所有修改到服务器,但不退出DISQL。要退出DISQL使用exit命令。DESCRIBE 获取表或视图、存储过程、函数、包、记录、类的结构描述。DEFINE 设置变量值,或者显示已定义的变量信息。HOST 在不退出DISQL的情况下执行操作系统命令。EDIT 打开一个文本编辑器,里面包含所有SQL记录。EXIT 提交或者回滚所有修改,退出DISQL。MORE 切换到下一个结果集。LIST 显示最近执行的SQL语句或者PL/SQL块信息,或者使用 ";"命令。不显示DISQL命令。PROMPT 发送指定的消息或者空行到用户的屏幕。QUIT 提交或者回滚所有修改,退出DISQL。SET 设置某个系统环境变量,设置的值会修改当前会话的DISQL系统设置,例如:- 设置数据显示宽度- 制定 HTML 格式- 允许/禁止打印列头- 设置每一页的行数SHOW 显示某个DISQL的系统变量,或者当前DISQL的环境变量。SPOOL 屏幕显示的内容输出到指定文件。WHENEVER 当一个SQL命令,或者PL/SQL块生成一个错误的时候,执行特定的命令(默认是DISQL退出)SQL> quit
dmdba@debian:~/dmdbms/bin$ pwd
/home/dmdba/dmdbms/bin
查看默认的所有用户
select username,user_id,default_tablespace,profile from dba_users:
查看数据库版本号
select * from v$version;
select id_code;
参数 | 说明 |
---|---|
DM Database Server 64 V8 | 达梦数据库管理系统目前最新的版本是8.0版本,简称DM8。 64 版本位数标识,64表示为64位版本,无64则表示为32位版本;V8 是大版本号。 |
B Version: 0x7000c | |
03134283968-20230103-178822-20033 | 03134283968 小版本号,20230103 版本编译时间;178822 代码SVN号;20033 分支代码号;后面如还有字段ENT是版本:ENT 版本标识,ENT表示企业版,还有STD标准版,SEC安全版。(其他标识为非通用的定制版) |
8、卸载数据库
切换到root用户
切换到root用户
su - root停止服务
systemctl stop DmServiceDMSERVER
systemctl stop DmAPService.service 执行卸载程序
切换到dmdba用户
su - dmdba
cd /home/dmdba/dmdbms
./uninstall.sh -idmdba@debian:~/dmdbms$ ./uninstall.sh -i
请确认是否卸载达梦数据库(/home/dmdba/dmdbms/)? (y/Y:是 n/N:否):y是否删除dm_svc.conf配置文件? (y/Y:是 n/N:否):y正在删除所有数据库库服务
删除数据库服务DmAuditMonitorService
删除数据库服务DmInstanceMonitorService
删除数据库服务DmJobMonitorService
删除数据库服务DmAPService
删除数据库服务DmServiceDMSERVER
删除所有数据库库服务完成
正在删除数据库目录
删除bin目录
删除bin目录完成
删除bin2目录
删除bin2目录完成
删除include目录
删除include目录完成
删除desktop目录
删除desktop目录完成
删除doc目录
删除doc目录完成
删除drivers目录
删除drivers目录完成
删除jdk目录
删除jdk目录完成
删除jar目录
删除jar目录完成
删除samples目录
删除samples目录完成
删除script目录
删除script目录完成
删除tool目录
删除tool目录完成
删除web目录
删除web目录完成
删除uninstall目录
删除uninstall目录完成
删除license_en.txt文件
删除license_en.txt文件完成
删除license_zh.txt文件
删除license_zh.txt文件完成
删除uninstall.sh文件
删除uninstall.sh文件完成
删除数据库目录完成使用root用户执行命令:
/home/dmdba/dmdbms/root_uninstaller.sh
dmdba@debian:~/dmdbms$ 使用root用户执行清理命令
切换到root
su - root
/home/dmdba/dmdbms/root_uninstaller.sh
root@debian:/home/dmdba/dmdbms/script/root# /home/dmdba/dmdbms/root_uninstaller.sh
sh: 0: getcwd() failed: No such file or directory
删除DmAPService服务
Removed /etc/systemd/system/multi-user.target.wants/DmAPService.service.
删除DmServiceDMSERVER服务
Removed /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service.
删除/etc/dm_svc.conf文件
root@debian:/home/dmdba/dmdbms/script/root# 此卸载完毕
9、多实例管理
建立端口为5237的数据库实例
命令如下
切换到dmdba用户
su - dmdba
cd /home/dmdba/dmdbms/bin
dminit path=/home/dmdba/dm/data db_name=DAMENG_5237 instance_name=DMSERVER_5237 port_num=5237 CASE_SENSITIVE=0 CHARSET=1dmdba@debian:~/dmdbms/bin$ dminit path=/home/dmdba/dm/data db_name=DAMENG_5237 instance_name=DMSERVER_5237 port_num=5237 CASE_SENSITIVE=0
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-01-03
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /home/dmdba/dm/data/DAMENG_5237/DAMENG_523701.loglog file path: /home/dmdba/dm/data/DAMENG_5237/DAMENG_523702.logwrite to dir [/home/dmdba/dm/data/DAMENG_5237].
create dm database success. 2023-04-06 23:12:23
dmdba@debian:~/dmdbms/bin$ 注册服务
切换到root用户
su - root
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dm/data/DAMENG_5237/dm.ini -p DMSERVER_5237root@debian:/home/dmdba/dmdbms/script/root# ./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dm/data/DAMENG_5237/dm.ini -p DMSERVER_5237
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER_5237.service → /lib/systemd/system/DmServiceDMSERVER_5237.service.
创建服务(DmServiceDMSERVER_5237)完成
root@debian:/home/dmdba/dmdbms/script/root#建立第二个实例前,data目录
root@debian:/home/dmdba/dm/data# ls -l
total 4
drwxr-xr-x 6 dmdba dinstall 4096 Apr 6 21:46 DAMENG
root@debian:/home/dmdba/dm/data# 建立第二个实例后,data目录
root@debian:/home/dmdba/dm/data# ls -l
total 8
drwxr-xr-x 6 dmdba dinstall 4096 Apr 6 21:46 DAMENG
drwxr-xr-x 5 dmdba dinstall 4096 Apr 6 23:12 DAMENG_5237
root@debian:/home/dmdba/dm/data# 数据库名对应data目录下的一个文件夹。查看多实例
ps -elf|grep -v grep|grep dmserverroot@debian:/home/dmdba/dmdbms/script/root# ps -elf|grep -v grep|grep dmserver
0 S dmdba 790 1 0 80 0 - 1003086 - 19:18 ? 00:00:57 /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dm/data/DAMENG/dm.ini -noconsole
0 S dmdba 46960 1 24 80 0 - 806203 - 23:24 ? 00:00:06 /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dm/data/DAMENG_5237/dm.ini -noconsole
root@debian:/home/dmdba/dmdbms/script/root#disql连接特定实例(不同端口区分不同数据库实例)
切换到dmdba用户
su - dmdba
cd /home/dmdba/dmdbms/bin
disql SYSDBA/SYSDBA@LOCALHOST:5237dmdba@debian:~/dmdbms/bin$ disql SYSDBA/SYSDBA@LOCALHOST:5237服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 5.103(ms)
disql V8
SQL> SELECT USER_NAME,CLNT_TYPE,TIME_ZONE,CLNT_IP,CLNT_VER FROM V$SESSIONS;行号 USER_NAME CLNT_TYPE TIME_ZONE CLNT_IP CLNT_VER
---------- --------- --------- --------- --------- ---------
1 SYSDBA SQL3 +08:00 ::1:42982 8.1.2.192已用时间: 4.888(毫秒). 执行号:58900.
SQL> select username,user_id,default_tablespace,profile from dba_users;行号 username user_id default_tablespace PROFILE
---------- ---------- ----------- ------------------ ------------------------------------------
1 SYSAUDITOR 50331650 SYSTEM /home/dmdba/dm/data/DAMENG_5237/SYSTEM.DBF
2 SYSSSO 50331651 SYSTEM /home/dmdba/dm/data/DAMENG_5237/SYSTEM.DBF
3 SYSDBA 50331649 MAIN /home/dmdba/dm/data/DAMENG_5237/MAIN.DBF
4 SYS 50331648 SYSTEM /home/dmdba/dm/data/DAMENG_5237/SYSTEM.DBF已用时间: 110.744(毫秒). 执行号:58901.
SQL> select name,create_time from v$database;行号 name create_time
---------- ----------- -------------------
1 DAMENG_5237 2023-04-06 23:12:22已用时间: 2.853(毫秒). 执行号:58902.
SQL>
10、windows DM管理工具
10.1、下载安装windows DM管理工具
产品下载 | 达梦数据库
选择X86 Win_64 下载
文件名:dm8_20230106_x86_win_64.zip
解压安装
选择客户端安装
10.1、下载安装windows DM管理工具
新建连接
输入数据库主机名(数据库服务器地址)
端口默认是5236
用户名SYSDBA 密码默认是SYSDBA
点确定进行连接
11、文档查看
11.1、在线文档
产品手册 | 达梦技术文档
11.2、安装程序中的本地文档
windows dm数据库系统安装目录下doc文件夹
相关文章:

linux下安装达梦数据库v8详解
目录 操作系统、数据库 1、下载达梦数据库 2、安装前准备 2.1、建立数据库用户和组 2.2、修改文件打开最大数 2.3、挂载镜像 2.4、新建安装目录 3、数据库安装 4、配置环境变量 5、初始化数据库实例 6、注册服务 7、使用数据库 8、卸载数据库 9、多实例管理 10、…...

Redis的常用命令
Redis中文字典网站 redis 命令手册https://redis.com.cn/commands.html Keys * 查看当前库所有的key exists ke 判断某个key是否存在 type key查看你的key是什么类型 Del key删除执行的key数据 unlink key非阻塞删除,仅仅将keys从keyspace元数据中删除…...
Docker入门常用命令总结
1.从远程仓库拉取一个纯净的镜像 docker pull docker .io/centos 2.创建并进入容器(左外右内) docker run --name xxx -dit 镜像id(镜像名称:Tag) /bin/bash 【参数必须放在镜像ID之前】 -i 让Docker分配一个伪终端,并…...

【Qt】容器控件、布局管理控件
目录 容器控件 QGroupBox QTabWidget 布局管理控件 QVBoxLayout 例子: QHBoxLayout 例子: QGridLayout 例子: 例子: QFormLayout 例子: QSpacerItem 例子: 容器控件 QGroupBox 表示一个带有…...

cesium小知识:常见的20多种property详解
要详细解释 Cesium 中所有的 Property 类,内容确实会非常丰富且详尽。 Property 基础 Property 是 Cesium 中用于表示随时间或条件变化的值的基础类。它允许你定义属性值如何根据时间、用户交互或其他逻辑动态改变。Property 的设计使得你可以创建复杂的动画和交互效果,而…...

图数据库 | 17、高可用分布式设计(上)
我们在前面的文章中,探索了多种可能的系统扩展方式,以及每种扩展方式的优劣。 本篇文章将通过具体的架构设计方案来对每一种方案的设计、投入产出比、各项指标与功能,以及孰优孰劣等进行评价。 在设计高性能、高可用图数据库的时候…...

1.运控概述
以下并不是我原创(包括图片),都是来源于网络收集。如CSDN博主,朝夕教育,AI等。 什么是运动控制 运控是指“控制移动”之意,可以利用各种电机进行位置控制等操作,让机器听懂你的指令。 什么是…...

DuckDB:密钥管理器及其应用
密钥管理器(Secrets Manager)为所有使用密钥的后端提供了统一的用户界面。密钥信息可以被限定范围,因此不同的存储前缀可以有不同的密钥信息,例如允许在单个查询中连接跨组织的数据。密钥也可以持久化,这样就不需要在每次启动DuckDB时都指定它…...
单元测试4.0+思路总结
Jmockit使用笔记_增加代码覆盖率_覆盖try catch_使用new MockUp私有方法-CSDN博客 一般使用new MockUp模拟被测试代码中的私有方法(常用) 使用new Expetations模拟被测试代码中的方法?...
epoll 水平ET跟边缘LT触发的区别是什么
epoll默认的是水平触发 意思就是当我们depoll默认的是水平触发 LT 模式(水平触发) 工作机制:在 LT 模式下,只要文件描述符(例如套接字)对应的 I/O 缓冲区中有数据可读或者可写空间(对于写操作…...

设计模式 创建型 单例模式(Singleton Pattern)与 常见技术框架应用 解析
单例模式(Singleton Pattern)是一种创建型设计模式,旨在确保某个类在应用程序的生命周期内只有一个实例,并提供一个全局访问点来获取该实例。这种设计模式在需要控制资源访问、避免频繁创建和销毁对象的场景中尤为有用。 一、核心…...

Java项目实战II基于微信小程序的家庭大厨(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 在快节奏的生活中,家庭聚餐成为了连接亲情…...

【JVM】总结篇-字节码篇
字节码篇 Java虚拟机的生命周期 JVM的组成 Java虚拟机的体系结构 什么是Java虚拟机 虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。常用的虚拟机有VMWare,Visual Box&…...

HTML——28.音频的引入
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>音频引入</title></head><body><!--audio:在网页中引入音频当属性名和属性值一样,可以只写属性名src属性:指定音频文件路径,必…...

Visual Point Cloud Forecasting enables Scalable Autonomous Driving——点云论文阅读(12)
此内容是论文总结,重点看思路!! 文章概述 这篇文章介绍了一个名为 ViDAR 的视觉点云预测框架,它通过预测历史视觉输入生成未来点云,作为自动驾驶的预训练任务。ViDAR 集成了语义、三维几何和时间动态信息,有效提升了感知、预测和规划等自动驾驶核心任务的性能。实验表明…...

《Xsens动捕与人形机器人训练》讲座将于1月9日下午2:30在线上召开
《Xsens动捕与人形机器人训练》讲座将于1月9日下午2:30在线上召开,本次讲座中来自Xsens的人形机器人与动捕技术专家Jeffrey Muller与Dennis Kloppenburg不仅将就Xsens动作捕捉系统与人形机器人行为训练中的实际应用进行详细讲解,同时还会对目前大家所关注…...
Mac 安装 Flutter 提示 A network error occurred while checking
错误信息 A network error occurred while checking "https://maven.google.com/": Operation timed out原因 在中国大陆(由于访问 Google 服务器的限制导致超时),无法连接到 https://maven.google.com/ 解决方案 需要使用镜像网站 #flutter 使用国内的镜像 export …...
形态学:图像处理中的强大工具
在图像处理中,形态学(Morphology) 是一类基于形状的操作,主要用于提取、分析和处理图像中的几何结构。尽管形态学操作最初是为二值图像设计的,但它也可以应用于灰度图像,帮助提取图像中的结构特征。形态学操…...

树莓派 Pico RP2040 教程点灯 双核编程案例
双核点亮不同的 LED 示例,引脚分别是GP0跟GP1。 #include "pico/stdlib.h" #include "pico/multicore.h"#define LED1 0 // 核心 0 控制的 LED 引脚 #define LED2 1 // 核心 1 控制的 LED 引脚// the setup function runs once when you press …...

2024年大型语言模型(LLMs)的发展回顾
2024年对大型语言模型(LLMs)来说是充满变革的一年。以下是对过去一年中LLMs领域的关键进展和主题的总结。 GPT-4的壁垒被打破 去年,我们还在讨论如何构建超越GPT-4的模型。如今,已有18个组织拥有在Chatbot Arena排行榜上超越原…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...