当前位置: 首页 > news >正文

Linux 7 x86平台上安装达梦8数据库

1、环境描述

在这里插入图片描述

2、安装前准备

2.1 操作系统信息调研

Linux平台需要通过命令查看操作系统版本、位数、磁盘空间、内存等信息。
CPU信息

[root@ray1 ~]# cat /proc/cpuinfo | grep -E "physical id|core id|cpu cores|siblings|cpu MHz|model name|cache size"|tail -n 7
model name      : AMD Ryzen 9 7945HX with Radeon Graphics
cpu MHz         : 2495.312
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2

操作系统位数

[root@ray1 ~]# getconf LONG_BIT
64

内核版本

[root@ray1 ~]# cat /proc/version
Linux version 3.10.0-1127.el7.x86_64 (mockbuild@x86-034.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Feb 18 16:39:12 EST 2020

操作系统版本

[root@ray1 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.8 (Maipo)
[root@ray1 ~]# 
[root@ray1 ~]# uname -a
Linux ray1 3.10.0-1127.el7.x86_64 #1 SMP Tue Feb 18 16:39:12 EST 2020 x86_64 x86_64 x86_64 GNU/Linux

内存信息

[root@ray1 ~]# free -gtotal        used        free      shared  buff/cache   available
Mem:              3           0           3           0           0           3
Swap:             3           0           3

磁盘信息

[root@ray1 ~]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G   13M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs        46G  3.9G   42G   9% /
/dev/sda1             xfs       997M  170M  828M  18% /boot
tmpfs                 tmpfs     394M     0  394M   0% /run/user/0

网卡信息

[root@ray1 ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.0.1  netmask 255.255.255.0  broadcast 192.168.0.255inet6 fe80::8e68:33f4:c4a:b8bf  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:3a:5f:91  txqueuelen 1000  (Ethernet)RX packets 1035  bytes 115699 (112.9 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 594  bytes 98878 (96.5 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 68  bytes 5448 (5.3 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 68  bytes 5448 (5.3 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:bb:76:33  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0-nic: flags=4098<BROADCAST,MULTICAST>  mtu 1500ether 52:54:00:bb:76:33  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.2 下载达梦数据库安装介质

可通过达梦官网根据操作系统类型、版本、CPU等信息下载相应版本的数据库安装介质。达梦官网下载链接为:https://eco.dameng.com/download/。

2.3 操作系统配置

2.3.1 配置主机名

[root@ray1 ~]# hostnamectl set-hostname ray1
[root@ray1 ~]# vi /etc/hosts
添加:
192.168.0.1 ray1

2.3.2 关闭防火墙

[root@ray1 ~]# systemctl stop firewalld
[root@ray1 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@ray1 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: inactive (dead) since Wed 2024-08-14 14:35:51 CST; 7s agoDocs: man:firewalld(1)Process: 876 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)Main PID: 876 (code=exited, status=0/SUCCESS)
Aug 14 13:54:33 ray1 systemd[1]: Starting firewalld - dynamic firewall daemon...
Aug 14 13:54:34 ray1 systemd[1]: Started firewalld - dynamic firewall daemon.
Aug 14 14:35:51 ray1 systemd[1]: Stopping firewalld - dynamic firewall daemon...
Aug 14 14:35:51 ray1 systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@ray1 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@ray1 ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@ray1 ~]# getenforce 
Enforcing
[root@ray1 ~]# setenforce 0
[root@ray1 ~]# getenforce 
Permissive

2.3.3 关闭操作系统Transparent Huge Pages

[root@ray1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@ray1 ~]# echo "[vm]">>/usr/lib/tuned/throughput-performance/tuned.conf
[root@ray1 ~]# echo "transparent_hugepages=never">>/usr/lib/tuned/throughput-performance/tuned.conf

重启操作系统后验证:

[root@ray1 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

2.3.4 更改磁盘调度算法

Linux 6 上的默认磁盘调度算法为CFQ(完全公平排队I/O调度算法),该算法的I/O分配是基于进程/线程平均分配的,并不适用于数据库这样希望大部分I/O都应用到数据库进程的系统。DEADLINE算法(截止时间调度)确保一个截止时间内服务请求,更适用与数据库系统。但是LINUX 7已经将默认的磁盘调度算法更改为DEADLINE。查看磁盘的调度算法:

[root@ray1 ~]# cat /sys/block/sda/queue/scheduler 
noop [deadline] cfq

若调度算法为cfq,需要更改为deadline,可通过如下命令:

[root@ray1 ~]# echo "deadline" > noop anticipatory deadline [cfq]

2.3.5 关闭NUMA

NUMA(Non-Uniform Memory Access)架构是为了解决多CPU下内存访问冲突,简单来说不在将整个物理内存作为一个整体,而是根据不同的CPU区分不同的内存块,如2颗CPU每颗CPU使用64G内存。当NUMA参数zone_reclaim_mode在设置为1时,内核将要求多路CPU 尽量从距离较近的系统内存节点(服务器的整体内存在numa架构下将被分成若干个节点)分配内存而不是在整个服务器可访问内存的范围内进行内存分配,因此在较高内存占用压力下内存申请会触发内存频繁回收整理的机制严重影响了系统整体性能(长期处于内核态sys很高)。进而可能导致SQL卡顿问题的发生。
查看NUMA是否启用:

[root@ray1 ~]# dmesg|grep -i numa
[    0.000000] NUMA: Node 0 [mem 0x00000000-0x0009ffff] + [mem 0x00100000-0x7fffffff] -> [mem 0x00000000-0x7fffffff]
#NUMA:Node 0表示NUMA已启用

关闭NUMA:
1、修改grub文件

[root@ray1 ~]# vi /etc/default/grub

在这里插入图片描述
2、重建grub文件

[root@ray1 ~]# grub2-mkconfig -o /etc/grub2.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1127.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1127.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-5df2d14ceffd4a389d53b7508bc2bb0e
Found initrd image: /boot/initramfs-0-rescue-5df2d14ceffd4a389d53b7508bc2bb0e.img
done

3、重启操作系统后检查numa状态

[root@ray1 ~]# dmesg | grep -i numa
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-1127.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet numa=off
[    0.000000] NUMA turned off
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-1127.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quietnuma=off
[root@ray1 ~]# cat /proc/cmdline 
BOOT_IMAGE=/vmlinuz-3.10.0-1127.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet numa=off

2.3.6 创建用户组和用户

[root@ray1 ~]# groupadd dinstall -g 2001
[root@ray1 ~]# useradd  -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
[root@ray1 ~]# passwd dmdba
Changing password for user dmdba.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

2.4 配置内核参数

[root@ray1 ~]# vi /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

重启后验证:

[root@ray1 ~]# su - dmdba
Last login: Wed Aug 14 15:16:38 CST 2024 on pts/0
[dmdba@ray1 ~]$ 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

2.5 创建目录并赋权

  • 数据库软件安装目录:/dmdba/dmrdbms
  • 实例保存目录:/dmdba/data
  • 归档保存目录:/dmdba/arch
  • 备份保存目录:/dmdba/dmbak
[root@ray1 ~]# mkdir -p /dmdba/dmrdbms
[root@ray1 ~]# mkdir -p /dmdba/data
[root@ray1 ~]# mkdir -p /dmdba/arch
[root@ray1 ~]# mkdir -p /dmdba/dmbak
[root@ray1 ~]# chown -R dmdba:dinstall /dmdba
[root@ray1 ~]# chmod -R 775 /dmdba

2.6 挂载镜像

将下载好的达梦数据库安装介质传输至服务器,并解压.zip文件。

[root@ray1 ~]# cd /soft/
[root@ray1 soft]# ll
total 1060656
-rw-r--r-- 1 root root 1086108981 Aug 14 12:52 dm8_20240712_x86_rh7_64.zip
[root@ray1 soft]# unzip dm8_20240712_x86_rh7_64.zip 
Archive:  dm8_20240712_x86_rh7_64.zipinflating: dm8_20240712_x86_rh7_64.README  inflating: dm8_20240712_x86_rh7_64.iso  inflating: dm8_20240712_x86_rh7_64.iso_SHA256.txt  
[root@ray1 soft]# ll
total 2138612
-rw-r--r-- 1 root root 1103818752 Jul 26 17:36 dm8_20240712_x86_rh7_64.iso
-rw-r--r-- 1 root root        100 Jul 26 17:37 dm8_20240712_x86_rh7_64.iso_SHA256.txt
-rw-r--r-- 1 root root        240 Jul 26 17:36 dm8_20240712_x86_rh7_64.README
-rw-r--r-- 1 root root 1086108981 Aug 14 12:52 dm8_20240712_x86_rh7_64.zip

将ISO文件挂载至光驱

[root@ray1 soft]# mount -o loop dm8_20240712_x86_rh7_64.iso /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
[root@ray1 soft]# df -Th
Filesystem            Type      Size  Used Avail Use% Mounted on
devtmpfs              devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs                 tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs                 tmpfs     2.0G   12M  2.0G   1% /run
tmpfs                 tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs        46G  5.9G   40G  14% /
/dev/sda1             xfs       997M  170M  828M  18% /boot
tmpfs                 tmpfs     394M     0  394M   0% /run/user/0
/dev/loop0            iso9660   1.1G  1.1G     0 100% /mnt

3、 数据库软件安装

3.1 图形界面安装

[dmdba@ray1 ~]$ export DISPLAY=192.168.0.201:0.0
[dmdba@ray1 ~]$ cd /mnt/
[dmdba@ray1 mnt]$ ./DMInstall.bin 
Extract install files.........

在这里插入图片描述
选择需要的语言、时区,点击确定。
在这里插入图片描述

点击下一步。
在这里插入图片描述

接受许可协议,点击下一步。
在这里插入图片描述

选择key文件路径,点击下一步。
在这里插入图片描述

选择【典型安装】,点击下一步。
在这里插入图片描述

输入达梦数据库软件安装目录,点击下一步。
在这里插入图片描述

点击确定、下一步。
在这里插入图片描述

再次确认各项配置、所需资源等,确认无误点击安装。
在这里插入图片描述

等待安装结束。
在这里插入图片描述
以root用户运行脚本,运行完成后点击确定。

[root@ray1 ~]# /dmdba/dmrdbms/script/root/root_installer.sh
移动 /dmdba/dmrdbms/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服务

在这里插入图片描述
点击完成。

3.2 配置环境变量

切换到 root 用户进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入。

[root@ray1 ~]# vi /home/dmdba/.bash_profile
添加:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dmdba/dmrdbms/bin"
export DM_HOME="/dmdba/dmrdbms"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
[root@ray1 ~]# su - dmdba
Last login: Wed Aug 14 15:35:08 CST 2024 on pts/0
[dmdba@ray1 ~]$ source .bash_profile

3.3 图形界面初始化数据库实例

[root@ray1 ~]# su - dmdba
Last login: Wed Aug 14 15:48:02 CST 2024 on pts/1
[dmdba@ray1 ~]$ export DISPLAY=192.168.0.201:0.0
[dmdba@ray1 ~]$ cd $DM_HOME/tool
[dmdba@ray1 tool]$ ./dbca.sh

在这里插入图片描述
选择创建数据库实例,点击开始。
在这里插入图片描述
选择一般用途、自动调整数据库性能参数、高性能,点击下一步。
在这里插入图片描述
选择数据库事先规划的数据库实例目录,点击下一步。
在这里插入图片描述
按需填入数据库名、实例名、端口号、是否需要路径拼接数据库名。点击下一步。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按需输入数据库各类文件路径、名称等,点击下一步。
在这里插入图片描述
在这里插入图片描述
按需设置簇大小、页大小、日志文件大小、字符集、大小写敏感等相关参数,点击下一步。
在这里插入图片描述
配置数据库口令,点击下一步。
在这里插入图片描述
是否要创建示例数据库,点击下一步。
在这里插入图片描述
再次确认数据库各项信息,点击完成。
在这里插入图片描述
等待数据库创建完成。
在这里插入图片描述
以root用户执行脚本,运行完成后点击确定。

[root@ray1 ~]# mv /dmdba/dmrdbms/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
[root@ray1 ~]# systemctl enable DmServiceDMSERVER.service
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
[root@ray1 ~]# systemctl start DmServiceDMSERVER.service

在这里插入图片描述
脚本已经执行完成,点击是。
在这里插入图片描述
点击确定。
在这里插入图片描述
root用户执行脚本,重启数据库服务。

[root@ray1 ~]# systemctl restart DmServiceDMSERVER.service

在这里插入图片描述
脚本执行完成后点击是。
在这里插入图片描述
数据库创建完成,点击完成。
在这里插入图片描述

3.4 图形界面注册数据库实例服务

通过dbca图形界面完成的初始化数据库实例,数据库实例服务会自动注册,无需单独执行注册数据库实例服务步骤。

至此,DM8数据库在RHEL7.8 x86 64bit上安装完成。

关于数据库连接、启停以及其他日常运维操作,参考其他篇博客,感谢关注。

相关文章:

Linux 7 x86平台上安装达梦8数据库

1、环境描述 2、安装前准备 2.1 操作系统信息调研 Linux平台需要通过命令查看操作系统版本、位数、磁盘空间、内存等信息。 CPU信息 [rootray1 ~]# cat /proc/cpuinfo | grep -E "physical id|core id|cpu cores|siblings|cpu MHz|model name|cache size"|tail -n…...

【老张的程序人生】我命由我不由天:我的计算机教师中级岗之旅

在计算机行业的洪流中&#xff0c;作为一名20年计算机专业毕业的博主&#xff0c;我深知这几年就业的坎坷与辉煌。今天&#xff0c;我想与大家分享我的故事&#xff0c;一段关于梦想、挑战与坚持的计算机教师中级岗之旅。希望我的经历能为大家提供一个发展方向&#xff0c;在计…...

1.Linux_常识

UNIX、Linux、GNU 1、UNIX UNIX是一个分时操作系统&#xff0c;特点是多用户、多任务 实时操作系统&#xff1a;来了请求就去解决请求 分时操作系统&#xff1a;来了请求先存着&#xff0c;通过调度轮到执行时执行 2、Linux Linux是一个操作系统内核 发行版本&#xff1…...

下载文件--后端返回文件数据,前端怎么下载呢

问题&#xff1a;有个功能是将tabel数据导出&#xff0c;并且后端写了个接口&#xff0c;这个接口返回你要下载的excel文件数据了。前端请求接口就行&#xff0c;然后下载下来&#xff0c;但前端该怎么操作&#xff08;发起请求呢&#xff09; /*** 导出文件* param {string} …...

CSS方向选择的艺术:深入探索:horizontal和:vertical伪类

CSS&#xff08;层叠样式表&#xff09;是构建网页视觉表现的核心工具。随着CSS规范的不断更新&#xff0c;我们拥有了更多的选择器来精确控制网页元素的样式。其中&#xff0c;:horizontal和:vertical伪类是CSS Level 4中引入的两个实验性选择器&#xff0c;它们允许开发者根据…...

探索PHP的心脏:流行CMS系统全解析

标题&#xff1a;探索PHP的心脏&#xff1a;流行CMS系统全解析 在数字化时代&#xff0c;内容管理系统&#xff08;CMS&#xff09;扮演着构建和维护网站的核心角色。PHP作为一种广泛使用的服务器端脚本语言&#xff0c;其强大的功能和灵活性使其成为开发CMS的首选。本文将详细…...

图片展示控件QGraphicsView、QGraphicsScene、QGraphicsItem的使用Demo

简介 /* * 图片展示控件 * Graphics View Framework的使用Demo * QGraphicsView、QGraphicsScene、QGraphicsItem的使用Demo * 支持图片的旋转与缩放&#xff0c;自动缩放至接触边框 */ 效果展示 坐标系示意图 Graphics View Framework的使用需要特别注意QGraphicsView、…...

C++仿C#实现事件处理

测试 #include "beacon/beacon.hpp" #include <cstdio> #include <thread>class mouseEvent : public beacon::args { public:mouseEvent(int x, int y) : x(x), y(y) {}int x, y; };class object : public beacon::sender { public:};class mouseHandl…...

SpringBoot-04--整合登录注册动态验证码

文章目录 效果展示1.导入maven坐标2.编写代码生成一个验证码图片3.前端如何拿到验证码4. 后端生成验证码5前端代码 效果展示 效果&#xff0c;每次进入页面展现出来不同的验证码。 技术 使用别人已经写好的验证码生成器&#xff0c;生成图片&#xff0c;转为Base64编码&#x…...

Qt如何打包桌面应用程序

Qt提供了一种便捷的方式来打包桌面应用程序&#xff0c;使其能够在不同操作系统上运行。以下是一些常用的打包工具和步骤&#xff1a; 1. **使用Qt Installer Framework**&#xff1a;Qt提供了一个名为Qt Installer Framework的工具&#xff0c;可以用来创建跨平台的安装程序。…...

AI作画提示词工程:技巧与最佳实践

在AI作画中&#xff0c;提示词工程&#xff08;Prompt Engineering&#xff09;是生成高质量图像的关键一步。以Midjourney为例&#xff0c;通过巧妙设计提示词&#xff0c;AI能够生成更符合预期的图像。本教程将分享如何有效利用提示词&#xff0c;掌握提示词的技巧与最佳实践…...

Ugandan Knuckles

目录 一、题目 二、思路 三、payload 四、思考与总结 一、题目 <!-- Challenge --> <div id"uganda"></div> <script>let wey (new URL(location).searchParams.get(wey) || "do you know da wey?");wey wey.replace(/[<…...

MVI、MVVM、MVP的对比

MVI 特点&#xff1a; 单向数据流&#xff1a;MVI采用单向数据流&#xff0c;从Model到View的数据流动&#xff0c;保证了数据流的可控性和可预测性。响应式编程&#xff1a;通过使用协程与RxJava等响应式编程库&#xff0c;简化了数据流的管理和处理。不可变性&#xff1a;MV…...

基于 Flutter 从零开发一款产品(一)—— 跨端开发技术介绍

前言 相信很多开发者在学习技术的过程中&#xff0c;常常会陷入一种误区当中&#xff0c;就是学了很多技术理论知识&#xff0c;但是仍做不出什么产品出来&#xff0c;往往学了很多干货&#xff0c;但是并无实际的用处。其实&#xff0c;不论是做什么&#xff0c;我们都需要从…...

React + Vite项目别名配置

Node版本&#xff1a;v20.16.0Vite版本&#xff1a;5.4.1 安装 types/node 依赖包 pnpm i types/node -D pnpm ls types/node配置 vite.config.js 文件: resolve: {alias: {"": join(__dirname, "./src/"),}, },使用配置好的别名 &#xff1a; 由上图我们…...

FFmpeg编译与配置 - Linux环境

Linux环境配置 环境&#xff1a;Ubuntu 22.04 step1. 首先下载安装依赖环境 更新软件源 sudo apt update下载依赖软件 sudo apt install \ autoconf \ automake \ build-essential \ cmake \ git-core \ libass-dev \ libfreetype6-dev \ libgnutls28-dev \ libsdl2-dev \…...

MyBatis-Plus 提供的一个通用服务层实现类

一、代码示例 Service public class CarriageServiceImpl extends ServiceImpl<CarriageMapper, CarriageEntity> implements CarriageService{Overridepublic List<CarriageDTO> findAll() {return List.of();} } 在这段代码中&#xff0c;CarriageServiceImpl …...

41-设计规则:线宽规则

1.设置电源线规则和信号线规则 2.设置信号线规则 3.设置电源线规则 如果未生效&#xff1a; ① 提升优先级即可。 ②查看使能选项有没有勾选...

使用MicroApp重构旧项目

前言 随着技术的飞速发展&#xff0c;我们公司内部一个基于“上古神器” jQuery PHP 构建的十年历史老项目已显力不从心&#xff0c;技术非常老旧且维护成本高昂&#xff0c;其实已经无数次想要重构&#xff0c;但是苦于历史遗留原因以及业务的稳定性而一直难以下手&#xff0…...

【Golang】go mod的使用

【1】GO111MODULE有三个值&#xff1a;off, on, auto off&#xff1a;go命令行将不会支持module功能&#xff0c;将会使用旧版本那种通过vendor目录或者GOPATH来查找依赖包的方式。 on&#xff1a;go命令行会使用modules功能&#xff0c;而不…...

Linux内核之网络套接字

文章目录 前言一、TCP4层模型和OSI7层模型OSI 7层模型TCP/IP 4层模型比较 二、套接字概念三、sockaddr_in和sockaddr结构体sockaddr_insockaddr区别 四、协议中的数据划分数据划分和首部添加流程数据接收与解析流程流程图 前言 一、TCP4层模型和OSI7层模型 OSI 7层模型 物理…...

SpringBoot事务-调度-缓存

一.Spring Boot中的事务管理 设置事务 Transactional(isolation Isolation.DEFAULT) Transactional(propagation Propagation.REQUIRED) 开启事务 EnableTransactionManagement 1. 开启事务管理 要开启 Spring 的事务管理&#xff0c;你需要在你的 Spring Boot 应用中添加 …...

社交媒体分析:如何利用Facebook的数据提升业务决

在数字化时代&#xff0c;社交媒体已经成为企业战略中不可或缺的一部分。Facebook&#xff0c;作为全球最大的社交平台之一&#xff0c;提供了丰富的数据资源&#xff0c;这些数据不仅能够帮助企业了解市场趋势&#xff0c;还能提升业务决策的精准度。本文将探讨如何有效利用Fa…...

企业中的流程组织

在每个实施SAP的企业中&#xff0c;除了传统的IT部门(包括SAP顾问所在的部门)&#xff0c;必不可少的是一定形式的流程组织(Process Organization)&#xff0c;流程组织的主要作用有 梳理企业内部业务流程&#xff0c;根据企业发展需要变更企业内部流程确定企业流程规范和部门…...

Redis:查询是否包含某个字符/字符串之二

上一篇&#xff1a;Redis&#xff1a;查询是否包含某个字符/字符串之一-CSDN博客 下一篇&#xff1a;Redis&#xff1a;查询是否包含某个字符/字符串之三-CSDN博客 摘要&#xff1a; 要查询数据&#xff0c;就需要遍历key&#xff0c;遍历value&#xff0c;其中包含存储等辅助…...

算法笔记|Day23贪心算法

算法笔记|Day23贪心算法 ☆☆☆☆☆leetcode 455.分发饼干题目分析代码 ☆☆☆☆☆leetcode 376. 摆动序列题目分析代码 ☆☆☆☆☆leetcode 53. 最大子序和题目分析代码 ☆☆☆☆☆leetcode 455.分发饼干 题目链接&#xff1a;leetcode 455.分发饼干 题目分析 优先考虑饼干…...

[星瞳科技]OpenMV使用时有哪些常见错误和解决办法?

常见代码错误 ImportError:no module named xxx 这个错误是Import错误&#xff0c;没有stepper这个模块。 原因&#xff1a; 你没有把stepper.py这个文件拖到你的板子里。见&#xff1a;模块的使用 拖过去之后&#xff0c;需要重启&#xff0c;使模块生效 MemoryError:FB …...

深度学习入门(二):PyTorch使用-张量的类型转换,拼接操作,索引操作,形状操作

目录 1. 张量类型转换 1.1 张量转换为 numpy 数组 1.2 numpy 转换为张量 1.3 标量张量和数字的转换 1.4 小节 2. 张量拼接操作 2.1 torch.cat 函数的使用 2.2 torch.stack 函数的使用 2.3 小节 3. 张量索引操作 3.1 简单行、列索引 3.2 列表索引 3.3 范围索引 3.…...

使用C#禁止Windows系统插入U盘(除鼠标键盘以外的USB设备)

试用网上成品的禁用U盘的相关软件&#xff0c;发现使用固态硬盘改装的U盘以及手机等设备&#xff0c;无法被禁止&#xff0c;无奈下&#xff0c;自己使用C#手搓了一个。 基本逻辑&#xff1a; 开机自启&#xff1b;启动时&#xff0c;修改注册表&#xff0c;禁止系统插入USB存…...

18. 基于ES实战海量数据检索

18. 基于ES实战海量数据检索 一. 概述二. Elasticsearch 全文检索1. 分布式搜索引擎2. 搜索引擎种类3. 倒排索引三. elastic使用1. 官网介绍2. docker安装3. elasticsearch-head工具4. 分词与内置分词4.1 内置分词器(了解即可)4.2 `IK`中文分词器三. 整合SpringCloud1. 基础配置…...

SpringBoot和Redis的交互数据操作以及Redis的持久化/删除策略和缓存问题

目录 一、SpringBoot和Redis/MySQL的数据交互 二、Redis的持久化 1、持久化过程保存什么 2、RDB方式 &#xff08;1&#xff09;RDB手动 &#xff08;2&#xff09;RDB自动 &#xff08;3&#xff09;RDB的优点 &#xff08;4&#xff09;RDB缺点 3、AOF方式 &#…...

Butterworth filter的运行原理

想象一下&#xff0c;你正在录制一个舞蹈表演的视频&#xff0c;但在录制过程中&#xff0c;摄像机由于风的影响稍微晃动了一下。现在&#xff0c;录像中的舞者看起来不再那么流畅&#xff0c;动作变得有点颤抖。你希望能让舞者的动作重新看起来平滑和优雅&#xff0c;这时你就…...

掌握SQL的威力:批量更新与删除的艺术

标题&#xff1a;掌握SQL的威力&#xff1a;批量更新与删除的艺术 在数据库管理中&#xff0c;批量更新&#xff08;UPDATE&#xff09;和删除&#xff08;DELETE&#xff09;操作是常见的需求&#xff0c;特别是在处理大量数据时。SQL作为数据库查询和操作的标准语言&#xf…...

《新一代数据可视化分析工具应用指南》正式开放下载

2024年8月12日&#xff0c;由DataEase开源项目组编写的《新一代数据可视化分析工具应用指南》白皮书正式面向广大用户开放下载。 《新一代数据可视化分析工具应用指南》是DataEase开源项目组为了支持企业落地并推广BI工具、推进企业数据可视化建设而编著的指导手册。通过本白皮…...

数据结构与算法——BFS(广度优先搜索)

算法介绍&#xff1a; 广度优先搜索&#xff08;Breadth-First Search&#xff0c;简称BFS&#xff09;是一种遍历或搜索树和图的算法&#xff0c;也称为宽度优先搜索&#xff0c;BFS算法从图的某个节点开始&#xff0c;依次对其所有相邻节点进行探索和遍历&#xff0c;然后再…...

登录 k8s-Dashboard 显示 Your connection is not private

文章目录 一、背景二、解决方案 一、背景 部署好 kubernetes-Dashboard 后使用 master节点的 ipport 登录 Dashboard 显示 Your connection is not private 无论是 Edge 还是 Google Chrome 都是这样的情况 二、解决方案 点击网页空白处&#xff0c;英文输入法输入&#xf…...

【Bifrost】ubuntu24.04 远程构建及clion设置编码风格google

Bifrost 构建通过clion 远程到ubuntu24.04 构建感觉是不认识这种写法,这种至少是c++11 fix : 修改absl 的构建cmakelist,明确c++17 好像还是不行error: ‘uint8_t’ was not declared in this scope加入:#include <stdint.h>可以解决一部分。那么,这种呢?/home/zha…...

批量查询全国快递单号:高效追踪物流信息

在日常生活和工作中&#xff0c;我们经常会遇到需要查询多个快递单号物流信息的情况。如果手动逐一查询&#xff0c;不仅效率低下&#xff0c;而且容易出错。为了解决这个问题&#xff0c;我们可以借助固乔科技推出的【固乔快递查询助手】软件&#xff0c;轻松实现全国快递的批…...

DVWA | CSRF(LowMedium)攻击的渗透实践

目录 概述 Low Medium 概述 CSRF&#xff08;Cross-Site Request Forgery&#xff0c;跨站请求伪造&#xff09; 是一种网络攻击方式。 通过伪造当前用户的行为&#xff0c;让目标服务器误以为请求由当前用户发起&#xff0c;并利用当前用户权限实现业务请求伪造。 例如&a…...

Tmagic-editor低代码底层拖拽库Moveable示例学习

在前面咱们的自研低代码海报制作平台学习分享计划中分享了自己开发的基本拖拽组件&#xff0c;也只是做了最简单的基本实现。真要写产品&#xff0c;更多还是依赖相关的开源优秀库。 文章目录 参考基本拖拽基本缩放基本Scalable基本旋转基于原点的拖拽和旋转关于练习源码 参考 …...

公开测评:文件防泄密系统哪家好|4款文件防泄密软件推荐

在文件防泄密系统领域&#xff0c;有多款软件以其高效、安全和全面的功能脱颖而出&#xff0c;为企业数据保护提供了有力支持。以下是四款值得推荐的文件防泄密软件&#xff0c;它们各具特色&#xff0c;能够满足不同企业的数据安全需求。 1. 安企神软件 7天试用版https://wor…...

【wiki知识库】09.欢迎页面添加(统计浏览量)Vue修改

目录 ​编辑 一、今日目标 二、新增the-welcome组件 2.1 template 2.2 script 2.2.1 getStatistic 2.2.2 get30DayStatistic 一、今日目标 上篇文章链接&#xff1a;【wiki知识库】08.添加用户登录功能--前端Vue部分修改-CSDN博客 今天就要实现最后的东西了&#xff0c…...

ui自动化难点

位置坐标&#xff1a;可以通过滑动等方式实现 颜色显示&#xff1a;UIAuto.DEV (devsleep.com) --此工具可以解决很多属性上无法解决的问题 原理&#xff1a; 对系统控件的选择和点击实现该方法...

静态路由与默认路由和实验以及ARP工作原理

目录 1.静态路由和默认路由 1.1 静态路由 1.2 默认路由 1.3 主要区别总结 2.实验 2.1 实验 2.1.1 实验top 2.1.2 实验要求 2.2 实验配置 2.2.1 ip信息配置 2.2.2 配置静态 2.2.3配置默认 2.3 实验结果查看 3.为什么第一个ping会显示丢包&#xff1f; 3.1 ARP 工…...

美国洛杉矶大带宽服务器的运维与监控

美国洛杉矶的大带宽服务器因其优越的地理位置、高速的网络连接以及充足的带宽资源&#xff0c;在全球范围内享有很高的声誉。为了确保这些服务器的稳定运行和高效服务&#xff0c;运维与监控工作显得尤为重要。以下是一些关于美国洛杉矶大带宽服务器运维与监控方面的科普内容。…...

AtCoder Beginner Contest 367 A~D

本期封面原图 画师えびら A - Shout Everyday 题意 b点睡觉c点起床&#xff0c;问你a点是不是醒着的 思路 直接判断即可&#xff0c;注意处理跨天的情况 代码 #include <bits/stdc.h> #define mod 998244353 using namespace std; typedef long long ll; typedef …...

oracle 保留两位小数

在Oracle数据库中&#xff0c;保留两位小数可以通过多种函数实现&#xff0c;主要包括ROUND、TRUNC和TO_CHAR函数。每种函数都有其特定的使用场景和效果。 1. ROUND函数 ROUND函数用于对数值进行四舍五入操作&#xff0c;保留指定的小数位数。其基本语法为&#xff1a; ROUN…...

Aop切面技术之存储用户信息

一、背景 在我们日常项目中&#xff0c;常常会将用户的认证信息存入缓存中&#xff0c;方便我们在程序执行中&#xff0c;进行获取用户信息。本篇文章主要是介绍使用自定义注解和AOP切面技术进行实现&#xff0c;这也也是非常容易使用的。 二、代码详解 2.1 自定义注解 定义…...

FreeBSD 针对OpenSSH 高危漏洞发布紧急补丁

近日&#xff0c;FreeBSD 项目的维护者针对OpenSSH 高危漏洞发布了紧急补丁。该漏洞被追踪为 CVE-2024-7589&#xff0c;CVSS 得分为 7.4&#xff08;最高分为 10.0&#xff09;。通过利用该漏洞&#xff0c;黑客能够在权限提升的情况下远程执行任意代码。 根据上周发布的一份…...

【C语言小项目】五子棋游戏

目录 前言 一、游戏规则 1.功能分析 2.玩法分析 3.胜负判定条件 二、游戏实现思路 三、代码实现与函数封装 1.项目文件创建 2.头文件说明 3.函数封装 1&#xff09;菜单实现 2&#xff09;进度条实现 3&#xff09;main函数实现 4&#xff09;Game函数 5&#xff0…...