Linux系统本地搭建DbGate数据库并结合内网穿透实现无公网IP远程连接

文章目录 1. 安装Docker2. 使用Docker拉取DbGate镜像3. 创建并启动DbGate容器4. 本地连接测试5. 公网远程访问本地DbGate容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 本文主要介绍如何在Linux Ubuntu系统中使用Docker部署DbGate数据库管理工具,并结合cpolar内网穿透工具实现公网远程访问本地数据库。 现在主流的数据库管理工具有Navicat、DBeaver、RedisDesktop、SQLyog等,今天要介绍的DbGate支持MySQL、MongoDB、Redis、SQLite等多种数据库,可以在Linux、Windows、MacOS、Web浏览器等平台运行,遵循MIT开源协议,内置丰富的插件,模式比较工具,图表可视化等功能。 而将它结合内网穿透工具使用时,可以实现即使身在异地,依然可以随时随地在公网环境访问本地的数据库,让开发者可以更方便快捷的查询数据。使用Docker安装部署DbGate也非常简单快速,下面就和大家分享一下具体操作流程。 1. 安装Docker 本教程操作环境为Linux Ubuntu系统,在开始之前,我们需要先安装Docker。 在终端中执行下方命令: 添加Docker源 # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(.

提高 AI 训练算力效率:蚂蚁 DLRover 故障自愈技术的创新实践

本文来自蚂蚁 DLRover 开源负责人王勤龙(花名长凡)在 2024 全球开发者先锋大会(GDC)的分享——《DLRover 训练故障自愈:大幅提升大规模 AI 训练的算力效率》。 🌟欢迎大家在 GitHub 上 Star 我们: DLRover: https://github.com/intelligent-machine-learning/dlrover GLake: https://github.com/intelligent-machine-learning/glake 王勤龙,长期在蚂蚁从事 AI 基础设施的研发,主导了蚂蚁分布式训练的弹性容错与自动扩缩容项目的建设。先后参与多个开源项目,如 ElasticDL 和 DLRover,开放原子基金会 2023 活力开源贡献者,蚂蚁集团 2022 T-Star 优秀工程师。目前为蚂蚁 AI Infra 开源项目 DLRover 的架构师,专注于打造稳定、可扩展和高效的大规模分布式训练系统。 当前大规模语言模型训练需要大量的加速卡来训练,如 GPU 等。由于 GPU 机器的故障率较高,频繁的故障会导致训练中断、计算浪费和集群空转,从而造成大量的时间和算力浪费。为此,DLRover 开源了训练故障自愈技术,长凡在演讲中介绍了 DLRover 如何通过快速的节点状态检测、弹性扩缩容、动态组网和 Flash Checkpoint 等技术,最大程度地降低故障导致的算力浪费。 大规模 AI 分布式训练面临的挑战 随着大模型从十亿参数迈向万亿参数,训练规模的增长导致了集群成本的飙升,同时也影响了系统的稳定性。如此规模的系统带来的高额运维成本,成为了大模型训练过程中亟需解决的问题。 参数量大:大模型参数迈向万亿,如何在庞大的计算资源上实现高效的模型训练?成本高:大规模集群需要更多的硬件资源,导致成本显著增加,如何降低 AI 训练成本?稳定性:随着集群规模的扩大,单节点故障率不变的情况下,整体故障概率增加,如何提高分布式训练的稳定性? 蚂蚁 AI 训练工程实践 上图展示了蚂蚁 AI 训练的工程技术栈,分布式训练引擎 DLRover 支持了蚂蚁的对话、代码、视频和多模态等模型的多样训练任务。以下是 DLRover 提供的主要功能: 训练故障自愈:将千卡分布式训练有效时间占比 >97%,降低大规模训练故障的算力成本;训练优化 ATorch:自动根据模型和硬件选择最优的分布式训练策略。将千卡(A100)集群硬件算力利用率 >60% ;训练优化器:相比 AdamW 提升 1.5x 的收敛加速。相关成果分别发表在ECML PKDD ’21 ,KDD’23,NeurIPS ’23;显存与传输优化 GLake:显存+传输一体化优化和全局显存优化,将训练显存需求降低 2-10 倍。成果发布在 ASPLOS’24。 机器故障大幅增加训练成本 蚂蚁之所以会特别关注训练故障的问题,主要因为训练过程中的机器故障大幅增加了训练成本。例如,Meta 训练 OPT-175B 模型时,使用了 992 80GB A100 GPU,共 124 台 8 卡机器,按照 AWS 的 GPU 价格,每天需要耗费约 70 万。因故障导致训练周期延长 20 多天,从而增加了上千万元的算力成本。

最简单方法解决启动hive时报错:Exception in thread “main“ java.lang.RuntimeException: org.apache.hadoop.hdfs.serve

问题描述 相信很多人和我一样在启动完集群之后,通过“lsof -i:10000”检测是否启动成功时会遇到如下图这种情况: 等待许久依旧无法启动成功,从而DataGrip无法连接数据库。 经过回头检验发现在启动metastore后,hive检验时报错如下图: 很容易我们可以关注到: Logging initialized using configuration in jar:file:/export/server/hive/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /tmp/hive. Name node is in safe mode. 这是因为我们在某次关闭虚拟机时,hadoop没正常关闭,系统自动启动了保护模式! 解决办法 1.首先我们要检测我们的安全模式是否是开启状态: hadoop dfsadmin -safemode get 很显然,安全模式为ON开启状态,此时matestore服务是不能启动的。 2.关闭安全模式:hadoop dfsadmin -safemode forceExit 当最后一行显示OFF时,代表我们关闭成功,然后我们重新启动matestore服务。 解决后结果 启动之后,输入hive进行运行结果检测: 问题解决: 启动hiveserver2服务:(此过程可能耗时几分钟,根据自己电脑配置情况会有所不同) 检测状态: 大功告成!

MySQL数据导出导出的三种办法(13/16)

数据导入导出 基本概述 目前常用的有3中数据导入与导出方法: 使用mysqldump工具: 优点: 简单易用,只需一条命令即可完成数据导出。可以导出表结构和数据,方便完整备份。支持过滤条件,可以选择导出部分数据。生成的文件可以用于跨平台、跨版本的数据迁移。 缺点: 导出的数据包含额外的INSERT语句,可能导致导入速度较慢。不能使用复杂的JOIN条件作为过滤条件。 推荐场景: 需要备份和迁移表结构和数据。需要导出部分数据到其他系统或进行数据分析。 导出CSV文件: 优点: CSV格式通用,易于在不同应用程序间交换数据。可以利用文本编辑器查看和编辑数据。支持所有SQL写法的过滤条件。 缺点: 导出的数据保存在服务器本地,可能受到secure_file_priv参数限制。每次只能导出一张表的数据。需要单独备份表结构。 推荐场景: 需要将数据导出到本地文件系统或共享网络位置。需要将数据导入到其他非MySQL系统或应用程序。 物理拷贝表空间: 优点: 速度极快,尤其是对于大表数据的复制。可以直接复制整个表的数据,不需要逐条插入。 缺点: 需要服务器端操作,无法在客户端完成。必须是全表拷贝,不能选择性导出数据。仅限于InnoDB引擎的表。 推荐场景: 需要快速复制大表数据到另一个数据库或服务器。源表和目标表都使用InnoDB引擎。有服务器文件系统的访问权限。 在选择使用哪种方法时,还需要考虑数据的大小、是否需要跨平台迁移、是否有权限访问服务器文件系统、是否需要保留表结构等因素。通常,如果需要快速迁移大量数据并且对数据的完整性有高要求,物理拷贝表空间是一个好选择。如果数据量较小或者需要跨平台迁移,使用mysqldump或导出CSV文件可能更合适。 mysqldump工具 使用mysqldump导出数据: mysqldump -h$host -P$port -u$user --add-locks=0 --no-create-info --single-transaction --set-gtid-purged=OFF db1 t --where="a>900" --result-file=/client_tmp/t.sql -h: 指定MySQL服务器的主机名。$host: 替换为实际的主机名。 -P: 指定MySQL服务器的端口号。$port: 替换为实际的端口号。 -u: 指定登录MySQL的用户名。`$user`: 替换为实际的用户名。 --add-locks=0: 导出时不增加额外的锁。 --no-create-info: 不导出表结构。 --single-transaction: 在导出数据时不需要对表加表锁。 --set-gtid-purged=OFF: 不输出与GTID相关的信息。 db1: 指定要导出的数据库名。 t: 指定要导出的表名。 --where="a>900": 导出满足条件a>900的数据。 --result-file=/client_tmp/t.sql: 指定导出结果的文件路径。 将数据导入到目标数据库: mysql -h127.0.0.1 -P13000 -uroot db2 -e "

[大模型]Qwen1.5-4B-Chat WebDemo 部署

Qwen1.5-4B-Chat WebDemo 部署 Qwen1.5 介绍 Qwen1.5 是 Qwen2 的测试版,Qwen1.5 是基于 transformer 的 decoder-only 语言模型,已在大量数据上进行了预训练。与之前发布的 Qwen 相比,Qwen1.5 的改进包括 6 种模型大小,包括 0.5B、1.8B、4B、7B、14B 和 72B;Chat模型在人类偏好方面的性能显著提高;基础模型和聊天模型均支持多种语言;所有大小的模型均稳定支持 32K 上下文长度,无需 trust_remote_code。 环境准备 在autodl平台中租一个3090等24G显存的显卡机器,如下图所示镜像选择PyTorch–>2.0.0–>3.8(ubuntu20.04)–>11.8(11.3版本以上的都可以) 接下来打开刚刚租用服务器的JupyterLab, 图像 并且打开其中的终端开始环境配置、模型下载和运行演示。 pip换源和安装依赖包 # 升级pip python -m pip install --upgrade pip # 更换 pypi 源加速库的安装 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install modelscope==1.9.5 pip install "transformers>=4.37.0" pip install streamlit==1.24.0 pip install sentencepiece==0.1.99 pip install accelerate==0.24.1 pip install transformers_stream_generator==0.0.4 模型下载 使用 modelscope 中的snapshot_download函数下载模型,第一个参数为模型名称,参数cache_dir为模型的下载路径。

python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

python Format()函数的用法___实例详解(一)(全,例多) (格式化替换,关键字替换,列表字典替换,类格式化, 魔法函数格式化,对齐及填充格式化,format对齐打印) 本篇目录内容: 📘 一、format() 函数的语法 📘 二、format() 函数基本用法 📘 三、用对齐及填充的方式格式化 📘 四、用format函数实现对齐打印 📘 五、其他内容待本系列篇(二)更新 📘 一、format() 函数的语法 语法:format(value, format_spec='')格式化指定的值,并将其插入字符串的占位符内。 将值转换为由 format_spec 控制的“格式化”表示形式。 format_spec的解释将取决于值参数的类型;默认format_spec是一个空字符串,通常与调用 str(value) 具有相同的效果。将 to 转换为在搜索值的方法时绕过实例字典的调用。如果方法搜索到达对象并且format_spec为非空,或者如果format_spec或返回值不是字符串,则会引发 TypeError 异常在 3.4 版更改: 如果format_spec不是空字符串,则引发 TypeError.object().__format__(format_spec) 📘 二、format() 函数基本用法 基本语法是通过 {} 和 : 来代替以前的 % 1、位置替换print('{0} {1}'.format('字符串1','字符串2'))格式, {}调用时,字符串编号顺序从0开始 2、可通过列表索引格式化字符串,{0[1]}中,‘0’ 是必须的 3、可以使用大括号 {} 来转义大括号,{{}} 4、数字和关键字段可以混合使用来传递参数, 5、关键字参数必须位于位置参数之后。 6、省略字段名{}不能和数字形式的字段名同时使用 7、format 函数可以接受不限个参数,位置可以不按顺序。 8、占位符使用大括号 {} 定义。 9、返 回 值,返回一个格式化的字符串 📖(1)按照先后顺序位置替换 主要格式:print('{ } { }'.format('字符串1','字符串2'))foramt会把参数按位置顺序来填充到字符串中(按照顺序自动分配),第一个参数是0,然后1 ……也可以不输入数字,则会按照顺序自动分配,而且一个参数可以多次插入一个参数可以多次插入{{}}仅代表{},不占用字符串格式化位置顺序 位置替换,按照先后顺序对format内容进行匹配替换

你真的知道 NPM、Yarn 与 PNPM 这三个前端包管理器之间的区别吗?

在当代的Web开发过程中,JavaScript项目的构建离不开各种外部依赖,无论是实用的库、辅助工具还是其他类型的资源。这些依赖项的管理,已经成为了开发者日常不可或缺的一部分。NPM、Yarn和PNPM这三个包管理器,就像是开发者的得力助手,它们在项目开发中扮演着至关重要的角色。本文将带你一探究竟,了解这些工具的魅力所在,并帮助你选择适合自己项目的包管理器。 1、什么是包管理 在现代Web开发中,一个Node.js应用的构建往往离不开各种依赖,比如库、辅助工具或其他工具包。以一个典型的React项目为例,当你想为项目添加路由功能时,你需要安装如react-router-dom这样的包。类似这样的需求在开发过程中屡见不鲜,而这就是为什么我们需要一个包管理器来帮助我们管理这些依赖。 默认情况下,Node.js安装时会自带NPM(Node Package Manager),作为最初的包管理工具,它为我们的开发提供了极大的便利。然而,随着项目的不断演进和需求的日益增长,仅仅依赖NPM可能无法完全满足我们的所有需求。 因此,了解不同的包管理器,以及它们各自的优势和局限,对于选择最适合自己项目的工具至关重要。下面,我们将探讨包管理器的几个关键作用,帮助你更好地理解它们的价值。 依赖管理 包管理器的核心功能之一是依赖管理。它负责安装、更新和管理项目所需的所有外部依赖,确保依赖版本的正确性和在项目中的可用性。这不仅节省了开发者大量的时间,还避免了因手动管理依赖而可能导致的错误。 安装便捷 从下载命令的提供到本地机器上的依赖、漏洞与安全性评估,这一系列复杂的管理工作都由包管理器自动完成。这大大简化了项目的初始化和后续的依赖更新过程。 脚本与命令 通过在package.json文件中定义额外的脚本命令,包管理器使得常见的开发流程(如启动服务器、运行测试、构建资源等)变得简单快捷。这些命令可以通过包管理器的命令行工具(CLI)直接执行,极大地提高了开发效率。 安全保障 包管理器还提供了工具来扫描已知的安全漏洞,例如NPM的npm audit命令。它们还关注依赖锁定、包签名和验证等安全性和安全措施,从而保护你的项目免受潜在的安全威胁。 通过了解不同包管理器的这些核心功能,你将更加有信心地选择适合自己项目需求的工具。不管是NPM、Yarn还是PNPM,它们都旨在使你的开发工作流程更加顺畅,帮助你更高效、更安全地管理项目依赖。 2、NPM:JavaScript开发者的首选包管理器 NPM(Node Package Manager),作为默认的JavaScript应用包管理器,与Node.js一同安装,它是目前使用最广泛的包管理器,得益于其对大量包的强大支持。 NPM的成长之路 在早期版本中,NPM缺乏对锁文件的支持,这意味着它无法维护应用所使用的依赖版本的确切记录。因此,版本控制的缺失常常导致兼容性问题,不同的环境可能会结束使用不同版本的依赖。此外,在更新之前,NPM允许在不同的机器上使用不同版本的包,这种灵活性不经意间可能导致重大变化,因为开发者可能会不经意间依赖于某个版本中存在而在另一个版本中缺失的特性或行为。后来,Yarn解决了这些问题,随后NPM也通过更新解决了这些问题。 NPM的工作原理 NPM拥有一个集中式的注册中心,其中托管了数以千计的包。这些包可以是库、框架、助手、工具或实用工具。当你运行npm install时,NPM会从NPM注册中心下载package.json文件中列出的包。下载这些依赖项时,NPM还会生成一个锁文件(package-lock.json),该文件指定了为项目下载的所有依赖项(直接和间接)的确切版本。它充当了一个确定性记录,确保未来的安装,即使是在不同的机器上,也会尝试下载相同的版本。当没有锁文件或锁文件被删除时,NPM将尝试下载满足package.json文件中指定的版本范围的最新兼容版本。这些范围使用语义化版本控制(semver)约定,如^(兼容的小版本)、~(兼容的补丁版本)或确切的版本号(1.2.3)。NPM使用嵌套依赖树,确保每个包获得其依赖的确切版本。 NPM的优势与劣势 优势: 广泛的支持 — NPM托管着世界上最大的JavaScript包注册中心。 简化的依赖管理 — NPM以最简化的方式自动化查找、安装和管理依赖的过程。 易于使用 — NPM设置和使用简单,对所有技能级别的开发者都易于接入。 劣势: 磁盘空间 — 由于NPM使用嵌套依赖树方法保存包,如果不同的依赖需要它们,它需要更多的磁盘空间来保存同一包的多个副本。 依赖膨胀 — 如果依赖/包在长期内没有得到适当管理,可能会导致不必要地积累大量包,这可能会增加项目的大小并潜在引入兼容性问题。 性能 — 与其他包管理器相比,特别是对于有许多依赖的较大项目,NPM的安装可能会更慢,因为它顺序下载包。 尽管存在一些劣势,但NPM通过不断的更新和改进,成功解决了许多早期的问题,并继续为广大JavaScript开发者提供强大的依赖管理和包安装服务。对于大多数项目和开发者而言,NPM依然是包管理的。 3、Yarn:超越NPM的现代JavaScript包管理器 Yarn(Yet Another Resource Negotiator),虽然这个名称听起来有些神秘,实际上它是由Facebook开发的一个Node包管理器,旨在解决当时NPM面临的一些问题。最初,NPM缺乏对依赖版本精确控制和锁文件概念的支持,这正是Yarn诞生的原因。与NPM在功能上有很多相似之处,但Yarn在某些方面提供了更多的优势。 Yarn的工作方式 使用yarn init命令初始化一个项目,这会在项目中生成一个package.json文件。 通过命令yarn add <package_name>添加任何包。 如果你有一个预配置的项目,并且想要安装依赖,可以运行yarn install命令,这将从NPM注册中心下载所有依赖并生成一个锁文件。 Yarn的优点 更快的安装速度:与NPM相比,Yarn在安装包时可以并行执行,从而加快了安装速度。 离线支持:Yarn利用本地缓存加速安装过程。它在全局位置存储包的缓存,可以在不同项目之间共享,这样不仅提高了速度,还实现了NPM所没有的离线支持功能。使用yarn cache dir命令可以查看Yarn保存其包缓存的目录。 更少的磁盘使用:Yarn采用平级依赖结构,避免了包的重复和嵌套,从而最小化了磁盘使用。 Monorepo支持:Yarn还旨在通过称为WORKSPACE的特性支持monorepo。Monorepo是一个单一的仓库,其中存在多个包,每个包都有自己的package.json。Yarn Workspaces通过从中心位置安装所有包的依赖来简化依赖管理。

Stable Diffusion安装(非秋叶包一键部署)

Stable Diffusion安装与配置详细步骤 一 、下载前置资源 下载CUDA 1. 查看CUDA版本 通过以下命令查看CUDA版本: nvidia-smi 复制 确保CUDA版本符合要求。 2. 下载CUDA 访问NVIDIA官网获取当前版本CUDA:CUDA Toolkit Downloads 获取旧版本CUDA:CUDA Toolkit Archive 下载Visual Studio和visual-cpp-build-tools 官网: Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com) Microsoft C++ Build Tools - Visual Studio 3. 下载和安装MiniConda 4. 安装Visual Studio和CUDA 安装Visual Studio和CUDA,确保环境配置完整。 二、安装stable-diffusion-webui 1. 克隆webui 使用以下命令克隆webui项目: git clone git@github.com:AUTOMATIC1111/stable-diffusion-webui.git 复制 2. 解决bug 在文件webui.py中搜索“shared.demo.launch”并进行必要的修改。 下载必要文件到openai文件夹,例如: git clone https://www.modelscope.cn/AI-ModelScope/clip-vit-large-patch14.git 复制 编辑webui-user.bat文件,添加修改显卡参数 跳转到显存优化命令写法 修改端口号位置防止和ollama冲突 在/stable-diffusion-webui/webui-user.sh文件中,修改端口号位置,例如: export COMMANDLINE_ARGS="--xformers --medvram --theme=dark --port=8888" 复制 3 安装依赖和运行 打开cmd到相应路径 conda create -n StableDiffusion python=3.

【小程序】常用方法、知识点汇总1

欢迎来到《小5讲堂》 这是《小程序》系列文章,每篇文章将以博主理解的角度展开讲解, 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 前言请求超时Markdown解析逐行显示效果文本变动事件转发朋友圈推荐文章 前言 最近在开发微信小程序,时间久了总会把一些常用的方法忘记了, 因此这篇文章汇总下一些接触到且容易忘记的知识点。 请求超时 wx.request,默认情况下,接口请求超时的时间为10秒,可以设置超时时间。 超时,指的是在一定时间内,如果请求接口没有响应,那么请求直接结束。 下面代码设置了超时时间为20秒 wx.request({ url: 'https://example.com/api', method: 'GET', timeout: 20000, // 设置超时时间为20秒 success(res) { // 请求成功后的处理 }, fail(err) { // 请求失败的处理 } }); Markdown解析 微信小程序显示Markdown内容,主要可以通过将Markdown转换为富文本显示的方式来实现。 以下是具体步骤和可能用到的工具: 1.选择转换工具:微信小程序本身并不直接支持Markdown的解析和显示,因此需要借助一些工具或库来实现Markdown到富文本的转换。例如,Towxml是一个常用的库,它可以将HTML和Markdown转换为WXML(WeiXin Markup Language),从而在微信小程序中显示。 2.集成转换库:将选定的转换库(如Towxml)集成到你的微信小程序项目中。这通常涉及将库文件添加到你的项目目录中,并在需要的地方引入和使用这些文件。 3.转换和显示Markdown内容:在你的小程序代码中,使用转换库将Markdown内容转换为WXML格式的富文本。然后,你可以将转换后的富文本内容显示在适当的位置,如页面上的文本组件中。 逐行显示效果 在微信小程序中实现文本逐行出现的效果,可以通过动画或者定时器来实现。 下面是一个使用定时器实现逐行显示文本的简单示例: 首先,你需要在小程序的WXML文件中定义文本内容和显示文本的视图: xml复制代码<!-- index.wxml --> <view class="container"> <view class="text-line" wx:for="{{lines}}" wx:key="index" wx:if="{{lines[index].show}}"> {{lines[index].text}} </view> </view> 然后,在对应的WXSS文件中定义样式: css复制代码/* index.wxss */ .container { /* 设置容器样式 */ padding: 20rpx; } .

精通SQL:数据库工程师必须掌握的UPDATE操作全解析

目录 写在开头1.准备工作构建演示数据 2. UPDATE语句基础2.1 语法简介2.2 更新单条记录2.3 更新多条记录 3. 高级UPDATE操作3.1 条件更新示例:基于工作表现调整员工薪资 3.2 关联表更新示例:更新客户订单状态 3.3 使用子查询更新示例:根据平均销售额更新员工级别 3.4 事务管理3.5 使用CASE语句进行条件更新 4. UPDATE操作的常见陷阱与解决方案4.1 更新操作的潜在风险4.2 如何安全地使用UPDATE数据备份的重要性使用事务控制更新操作 4.3 性能优化建议4.4 锁定策略和并发控制4.5 数据一致性和完整性4.6 测试和审计 5. 实战案例5.1 案例研究:动态调整库存5.2 案例研究:员工晋升及薪酬调整5.3 案例研究:批量更新用户状态5.4 案例研究:同步更新多个表5.5 案例研究:动态调价策略5.6 案例研究:积分清零操作 6. 常见问题FAQ6.1 如何撤销错误的`UPDATE`操作?6.2 `UPDATE`操作是否可以更新多个表?6.3 `UPDATE`语句如何与`JOIN`一起使用?6.4 如何安全地执行大规模的`UPDATE`操作?6.5 如何更新时避免死锁? 写在最后 写在开头 在数据库管理和操作中,UPDATE语句扮演着至关重要的角色。无论是对于数据的日常维护还是复杂的数据分析工作,精确和高效地使用UPDATE语句都是每位数据库工程师必备的技能。本文将深入探讨UPDATE语句的基础和高级用法,帮助你提升在实际工作中的应用能力。 1.准备工作 UPDATE语句用于修改数据库表中的数据,其灵活性和强大功能使其成为数据库操作中不可或缺的一部分。正确地使用UPDATE语句不仅可以提高工作效率,还可以避免数据操作中的常见错误。 构建演示数据 创建一个测试表和相应数据的步骤通常包括定义表结构、确定需要的字段(列)以及插入一些初始数据供测试使用。下面,我将提供一个SQL示例,用于创建一个简单的employees表,并插入一些示例数据。这个表包含员工ID、员工姓名、所属部门和薪水等基本信息。 SQL脚本:创建表及插入数据 CREATE TABLE employees ( employee_id INT PRIMARY KEY, name VARCHAR(100), department VARCHAR(50), salary DECIMAL(10, 2) ); INSERT INTO employees (employee_id, name, department, salary) VALUES (1, '张三', '技术部', 8000.

java的警示之有危险的行为

👨‍💻作者简介:👨🏻‍🎓告别,今天 📔高质量专栏 :☕java趣味之旅 欢迎🙏点赞🗣️评论📥收藏💓关注 💖衷心的希望我的📙作品能给大家带来收获。 🎊前言: 让我们如大自然般🌱悠然自在😊地生活一天吧, 别因为有坚果外壳或者蚊子翅膀落在铁轨上🛤️而翻了车🚆。让我们该起床时🛏️就赶紧起床🛏️, 该休息🛏️时就安心休息🛏️, 保持安宁而没有烦扰的心态;身边的人要来就让他来,要去就让他去, 让钟声🕰️回荡,让孩子👼哭喊— 下定决心好好地过一天。 🙏希望大家都可以过好每一天。也🙏希望我的博客,能给大家带来💯收获。 1. 异常的概念与体系结构 1.1 异常的概念 身为程序员,虽然我们足不出户,但坏运气仍然会降临身边。倒霉的事就是会发生,找不到文件、服务器出故障、程序报错等。不管你多有天分,也没有办法保证不会出异常。 在程序中也是一样,程序猿是一帮办事严谨、追求完美的高科技人才。在日常开发中,绞尽脑汁将代码写的尽善尽美,在程序运行过程中,难免会出现一些奇奇怪怪的问题。有时通过代码很难去控制,比如:数据格式不对、网络不通畅、内存报警等。 在Java中,将程序执行过程中发生的不正常行为称为异常。比如之前写代码时经常遇到的: 1. 算术异常 System.out.println(10 / 0); // 执行结果 Exception in thread "main" java.lang.ArithmeticException: / by zero 程序报异常了,没有打印,不会再继续向下执行 2. 数组越界异常 int[] arr = {1, 2, 3}; System.out.println(arr[100]); // 执行结果 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100 3. 空指针异常 int[] arr = null; System.out.println(arr.length); // 执行结果 Exception in thread "main" java.lang.NullPointerException 从上述过程中可以看到,java中不同类型的异常,都有与其对应的类来进行描述。 1.2 异常的好处 使用异常所带来的另一个相当明显的好处是,他往往能降低错误处理代码的复杂度。如果不使用异常,那么就必须检查特定的错误,并在程序中的许多地方来处理它。而如果使用异常,那就不必在方法调用处进行调查,因为异常机制将保证能够捕获这个错误。并且,只需在一个地方处理错误,即所谓的异常处理程序中。这种方式不仅节省代码,而且把描述在正常执行过程中做什么事的代码和出了问题怎么办的代码相分离。总之,与以前的错误处理方法相比,异常机制使代码的阅读,编写和调试工作更加井井有条。 -------选自于JAVA编程思想 作者Bruce Eckel

苍穹外卖11(Apache ECharts前端统计,营业额统计,用户统计,订单统计,销量排名Top10)

目录 一、Apache ECharts【前端】 1. 介绍 2. 入门案例 二、营业额统计 1. 需求分析和设计 1 产品原型 2 业务规则 3 接口设计 2. 代码开发 3. 功能测试 三、用户统计 1. 需求分析和设计 1 产品原型 2 业务规则 3 接口设计 2. 代码开发 3. 功能测试 四、订单统计 1. 需求分析和设计 1 产品原型 2 业务规则 3 接口设计 2. 代码开发 3. 功能测试 五、销量排名Top10 1. 需求分析和设计 1 产品原型 2 业务规则 3 接口设计 2. 代码开发 3. 功能测试 一、Apache ECharts【前端】 1. 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。 官网地址:Apache ECharts

Flink WordCount实践

目录 前提条件 基本准备 批处理API实现WordCount 流处理API实现WordCount 数据源是文件 数据源是socket文本流 打包 提交到集群运行 命令行提交作业 Web UI提交作业 上传代码到gitee 前提条件 Windows安装好jdk8、Maven3、IDEA Linux安装好Flink集群,可参考:CentOS7安装flink1.17完全分布式 基本准备 创建项目 使用IDEA创建一个新的Maven项目,项目名称,例如:flinkdemo 添加依赖 在项目的pom.xml文件中添加Flink的依赖。 <properties> <flink.version>1.17.1</flink.version> </properties> <dependencies> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>${flink.version}</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients</artifactId> <version>${flink.version}</version> </dependency> </dependencies> 刷新依赖 刷新依赖后,能看到相关依赖如下 刷新依赖过程需要等待一些时间来下载相关依赖。 如果依赖下载慢,可以设置阿里云仓库镜像: 1.设置maven的settings.xml 在</mirrors>上面一行添加阿里云仓库镜像 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> 2.IDEA设置maven 数据准备 在工程的根目录下,新建一个data文件夹 并在data文件夹下创建文本文件words.txt 内容如下 hello world hello java hello flink 新建包 右键src/main下的java,新建Package 填写包名org.example,包名与groupId的内容一致。 批处理API实现WordCount 在org.exmaple下新建wc包及BatchWordCount类 填写wc.BatchWordCount 效果如下 BatchWordCount.java代码如下: package org.

强到离谱!Stable Diffusion让商业换装如此简单!AI一键换装,AI绘画教程

今天给大家介绍一款可以让 Stable Diffusion 轻松实现AI一键换装的超强插件—— Inpaint Anything ,它能精准地替换图片中的指定部位,不仅上手简单,而且简直强到离谱!需要这个插件的小伙伴看文末扫码获取。 首先,我们要下载这个插件。 安装方法一: 进入扩展选项,点开“可下载”,再点击“加载扩展列表”,然后在搜索框内输入“Inpaint Anything”进行搜索,找到Inpaint Anything并点击安装。 这里强调一点,一定要先点击“加载扩展列表”这个按钮,不然搜不到。 安装方法二: 进入Inpaint Anything的GitHub页面,复制下载链接,然后粘贴到WebUI的“从网址安装”,点击安装。 安装结束后需要重新启动 webUI,重启后,就能看到 Inpaint Anything 的插件了。 进入 Inpaint Anything 插件栏,第一次使用的时候,还需要点击下载模型按钮,把需要的模型下载下来。 下面这张图是 Inpaint Anything 几个模型的区别,可以看出第一个模型最精细,但需要的显卡显存也越高,越往后去精度越低。 一般用第二个 0b3195 这个模型就够了,但它也需要至少8G的显存。 好吧,我的显卡只有6G显存,所以我选了第三个 01ec64这个模型。 下面开始实操。 打开 Inpaint Anything 卷展栏,拖入一张要修改的照片,选择 01ec64这个模型,然后点击下方的运行。 经过一会计算后,右边便出现了一张颜色块图案,原图上人物的各个部分被用颜色块来进行了分割。 我们用画笔工具在衣服的色块上进行涂抹,然后点击下方的创建蒙版,衣服便被创建了蒙板。 我们发现刚刚的人物肩膀处还有一部分没有被蒙板覆盖,需要再用画笔涂抹,然后点击下方的添加蒙板。 直到衣服全部被被添加进蒙板里面。 仔细观察,在蒙板的交界处,边缘似乎有些地方没有完全被蒙板覆盖,这时可以点击展开蒙板区域,将蒙板扩展1个像素。 点击仅蒙板–>获取蒙板–发送到图生图。就会将原图和我刚刚创建的蒙板直接发送到图生图中。 在重绘的时候有几个注意的地方,一是重绘的尺寸要和原图一致,二是如果想要让图片变化更大的话,可以提高重绘幅度。 最后重新给定几个衣服的指令词,就可以为图片中的人物生成不同衣服了。 同样的,如果你想更换人物的脸,或者头发等,也可以用这个方法实现。 文章使用的AI绘画SD整合包、各种模型插件、提示词、AI人工智能学习资料都已经打包好放在网盘中了,有需要的小伙伴文末扫码自行获取。 写在最后 AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。 感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程,模型插件,具体看下方。 一、AIGC所有方向的学习路线 AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。 二、AIGC必备工具 工具都帮大家整理好了,安装就可直接上手! 三、最新AIGC学习笔记 当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。 四、AIGC视频教程合集 观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 五、实战案例 纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。 若有侵权,请联系删除

英伟达H100算力出租,Punkhash探索AI无限,GB200/H800算力租赁解决方案GPU算力租赁成本揭秘史上最贵芯片Nvidia H100是什么?

英伟达(NVIDIA)一直是人工智能(AI)领域的领先者之一,其GPU产品在深度学习、科学计算和数据处理等方面展现了卓越的性能和能力。H100系列是英伟达专为AI计算而设计的一款顶级GPU,具备强大的计算性能和丰富的深度学习加速功能。在本文中,我们将对H100系列的三个不同版本进行详细的技术分析:H100 SXM、H100 PCIe和H100 NVL。 加速计算的数量级飞跃 借助 NVIDIA H100 Tensor Core GPU,为每个工作负载提供卓越的性能、可扩展性和安全性。 借助 NVIDIA NVLink™ 交换机系统,最多可以连接 256 个 H100 GPU,以加速百亿亿次工作负载。 GPU 还包括专用的 Transformer Engine,用于解决万亿参数语言模型。 H100 的综合技术创新可以将大型语言模型 (LLM) 的速度比上一代提高 30 倍,从而提供业界领先的对话式 AI。 技术参数概览 首先,让我们来看一下H100系列各个版本的主要技术参数: 技术参数H100 SXMH100 PCIeH100 NVLFP64 teraFLOPS342668FP64 Tensor Core6751134FP32 teraFLOPS6751134TF32 Tensor Core9897561,979BFLOAT16 Tensor Core1,9791,5133,958FP16 Tensor Core1,9791,5133,958FP8 Tensor Core3,9583,0267,916INT8 Tensor Core3,958 TOPS3,026 TOPS7,916 TOPSGPU内存80GB80GB188GBGPU内存带宽3.35TB/s2TB/s7.8TB/s解码器7 NVDEC + 7 JPEG7 NVDEC + 7 JPEG14 NVDEC + 14 JPEG最大热设计功耗 (TDP)最高700W300-350W2x 350-400W多实例GPU最多7个MIGs @ 10GB最多7个MIGs @ 10GB最多14个MIGs @ 12GB外形尺寸SXM形式双槽PCIe双槽PCIe互连NVLink:900GB/s PCIe Gen5:128GB/sNVLink:600GB/s PCIe Gen5:128GB/sNVLink:600GB/s PCIe Gen5:128GB/s服务器选项NVIDIA HGX™ H100 + 合作伙伴和NVIDIA认证系统(4或8个GPU)NVIDIA DGX™ H100 + 8个GPU合作伙伴和NVIDIA认证系统(1–8个GPU) 技术分析 现在让我们对上述技术参数进行更详细的分析:

SD-WebUI视频重绘:TemporalKit+EbsynthUtility避坑指南

大家好,我是程序员晓晓 AI视频重绘,在当下大家并不陌生。我们的实现方式大致可以分为三种: 第三方平台和discord上转绘,如DomoAI ,GoEnhance AI 等。 优点:效果佳,门槛低。 缺点:需要科学上网,和支付一定的使用费用。 ComfyUI转绘工作流,通过animateDiff 结合CN控制网生成视频。 优点:本地部署,可控性高,根据自己的配置灵活取舍。 缺点:门槛高,安装麻烦,需要下载大量的模型。 SD-WebUI通过TemporalKit和EbsynthUtility插件插件生成视频。 优点:本地部署,不需要网络。 缺点:门槛中,操作也很多。 那么我们今天就详细地讲解一下SD-WebUI下重绘视频的详细生成步骤,如果你也想生成AI视频转绘高清视频,请继续往下看。 测试的视频资源我用的是GoEnhance.Al 官方上的视频。 如何使用: 1. 安装ffmpeg: 下载ffmpeg软件包,将其解压到C盘。 然后将其完整路径添加到系统环境变量,注意是bin目录。 然后我们可以“win+r” 输出“cmd” 调出控制台输入“ffmpeg -version” 出现详细信息就表示ffmpeg安装成功。 2. 安装transparent-background: 在开始“运行” 输入“cmd” (或者键盘Win+R,输入“cmd”) 在弹出的命令行里面输出“pip install transparent-background” 等待输入提示符闪烁,安装完成。 3. 安装SD插件: 首先我们需要有绘世SD webUI软件(如没有AI绘画软件SD,请看文末扫描获取),然后双击启动“A绘世启动器.exe”,在启动器面板左边“版本管理中”找到“安装新扩展” 搜索一下“Ebsynth ” 点击后面的“安装”,(如无法安装,请看文末获取本地插件安装包) 再搜索“Temporal” 点击安装。(如无法安装,请看文末获取本地插件安装包) 然后我们来到首页点击“一键启动” ,启动SD-WebUI。 它会自动下载安装插件,安装完成后会自动弹出URL网页链接。 此时我们需要的插件和环境都安装完成了,接下来看看如何使用。 4. 分割视频: 首先,我们找一个要转绘的视频,将其拖拽入WebUI中。设置如下,每1帧都采样,动作幅度较大就设置成每3帧提取一个关键帧。 分辨率我们可以在视频上右键“属性”-详细信息中查看,填写入视频的高度点击“保存设置”。 然后,我们需要在本地任意地方创建一个纯英文路径的文件夹。我在C:\Users\75691\Videos\test创建了个文件夹用于接收渲染的文件。 将这个路径填入设置,勾选“批量处理” 和“分割视频” 选项,然后我们就可以点击右边的“运行”了。 我们会看到刚创建的目录下面,会存放分割的视频文件图片。 0~6是刚刚每隔3帧取一个关键帧的储存文件夹。 input是原始视频逐帧图存放的文件夹。 output是一会儿要重绘的图的存放文件夹。 main_video.mp4是原始视频文件。 5. 确定风格: 然后我们需要确认我们转换的风格,比如是转换成卡通,还是3D又或者是真人,这些取决于我们选择的大模型的风格。我们这里选择卡通二次元。 将刚刚input路径下的图片拖入图生图,跑图测试。 修改提示词,先用DeepBooru 反推提示词。将红色背景,改成简单背景。加入LCM加速,提升出图速度。(我还加了个添加细节的lora这个随意)选择一个二次元模板。

【大数据】大数据概论与Hadoop

目录 1.大数据概述 1.1.大数据的概念 1.2.大数据的应用场景 1.3.大数据的关键技术 1.4.大数据的计算模式 1.5.大数据和云计算的关系 1.6.物联网 2.Hadoop 2.1.核心架构 2.2.版本演进 2.3.生态圈的全量结构 1.大数据概述 1.1.大数据的概念 大数据即字面意思,大量数据。那么这个数据量大到多少才算大数据喃?通常,当数据量达到TB乃至PB级别时,传统的关系型数据库在处理能力、存储效率或查询性能上可能会遇到瓶颈,这时考虑采用大数据技术是合理的。 当然可以通过分库分表等方式来让关系型数据库来强行抗住这个量级,所以数据量大外数据结构是不是够杂(结构化、半结构化、非结构化数据)也是要不要上大数据技术的重要考量点。 当然数据杂也可以通过关系型+非关系型数据库(如MySQL+MongoDB+ES)组合式的存储来分别存储,所以还要看要求对数据的使用上的诉求是什么?实时或近实时的分析处理(例如实时推荐系统、金融风控、物联网监控等),这些对数据的使用方式上需要对大量数据进行计算,而不再是关系型数据库中那种小批量的增删改查,这时候即使是用了组合式的存储来存放数据,要去各种存储上跑计算任务再汇总到一起,明显是很低效的,这时候上大数据技术就是十分合理的。 大数据场景中的数据往往具有4V的特点: 大量化:数据量大。快速化:增长速度快。多样化:数据类型多样,结构化、非结构化都有。价值密度低:价值密度低,商业价值高。 1.2.大数据的应用场景 大数据的应用总结起来就是:决策、预测。 1.零售行业 个性化推荐:基于用户购物历史、浏览记录、社交媒体行为等数据,实现商品个性化推荐,提高转化率和用户满意度。 库存优化:通过分析销售数据、季节性趋势、供应链信息等,精准预测需求,减少库存积压,提升供应链效率。 价格策略:利用市场动态、竞品分析、消费者敏感度数据制定动态定价策略,提高竞争力和利润水平。 客户细分与营销:对客户数据进行聚类分析,识别不同消费群体特征,实施精细化营销策略。 2. 金融行业 风险评估与管理:运用大数据分析进行信用评分、欺诈检测、市场风险预测,提升信贷决策准确性,降低风险敞口。 交易监控与反洗钱:实时监测异常交易行为,运用机器学习算法识别潜在的洗钱活动,确保合规运营。 投资决策支持:结合宏观经济数据、公司财务报告、社交媒体情绪等多元数据源,辅助投资者进行量化投资分析和策略制定。 3. 教育行业 学生学习行为分析:通过分析在线学习平台数据,了解学生学习进度、难点、偏好,提供个性化教学建议和资源推荐。 教育资源优化:依据课程访问量、完成率、互动数据等,评估教学效果,优化课程设计与资源配置。 教育政策制定:利用大数据研究教育公平、教学质量、就业趋势等问题,为教育政策制定提供数据支持。 4. 医疗行业 疾病预测与预防:通过对电子病历、基因组数据、生活方式数据的分析,预测疾病风险,指导早期干预和预防措施。 精准医疗:基于个体基因、生理指标、环境因素等大数据,制定个性化治疗方案,提高疗效和患者生活质量。 医疗资源管理:利用大数据预测医疗需求,优化医院床位、设备、人力资源分配,提升医疗服务效率。 5. 市场营销与客户关系管理 市场趋势分析:通过分析社交媒体、搜索引擎、行业报告等数据,洞察市场动态、消费者偏好变化,指导产品开发和市场定位。 精准广告投放:基于用户画像、行为数据、地理位置等信息,实现广告的定向投放和效果优化。 客户满意度与忠诚度提升:利用客户反馈、社交媒体舆情、购买行为数据,识别影响满意度的关键因素,制定针对性的改进策略。 6. 其他行业与通用场景 智慧城市:集成交通、能源、环境、公共服务等多源数据,实现城市运行状态监测、资源调度优化、应急响应管理等。 工业制造:通过设备数据、生产流程数据的实时分析,实现预测性维护、质量控制、产能优化等智能制造应用。 社交媒体分析:挖掘用户社交网络行为、情感倾向、话题热度等数据,为企业品牌管理、舆情监控、产品推广提供决策支持。 1.3.大数据的关键技术 大数据技术,其实就是一套解决方案,是基于各种现实的业务场景的成功的解决方案的总结。 大数据技术可以看作对传统技术的延申,是由于大数据的量传统技术不是很好应付了才出现了大数据的解决方案。传统的单点扛不住,扩集群,集群也扛不住就可以考虑大数据,或者即使集群扛得住,但是数据类型太杂了需要也可以考虑大数据。所以大数据和传统技术只是AB两套方案罢了。 大数据的整个流程: 数据采集->数据存储与管理->数据处理与分析 其中最为核心的是:数据存储和数据分析,也就是: 数据的存储 数据的运算 1.数据存储 其实就是当数据量很小的时候,存在单台机器上,当单台机器扛不住的时候存在多台机器上。存在多台机器上就需要进行统一的管理,对外给出统一的API让操作者去操作整个集群中的数据,让操作者体感愉悦,感知上觉得面对的就是一台存储容量无限大的单点服务器。 统一的管理、统一的操作API,这两点合在一起,像不像个系统?是的,这就是大数据中的存储系统,分布式文件系统——HDFS。 2.数据的运算 花这么大代价用HDFS存储起来的数据肯定不是拿来看的,而是要用起来的,是要用于计算的。在大数据系统中由于其存储采用了分布式的架构,计算任务不再是单点的,而是分布式的,是要分发到集群中的各个存储节点上去的,由各个结点计算后汇总出最终的结果。很明显这种多节点间的协作计算是需要进行任务调度的,这就是分布式计算引擎需要干的活儿,经典的分布式计算引擎是HDFS中内置的——MapReduce。其主要就是负责计算任务的调度。 除此之外还有一个目前市面上常用的强力的计算引擎——spark。mapreduce是基于磁盘的计算,spark是基于内存的计算,两者之间互有优劣。 扩展功能 有HDFS+MapReduce其实大数据系统就已经可以工作了,但是每次对数据进行查询都要写mapreduce任务,作为一个分布式的处理程序,mapreduce的任务写起来还是要求一些专业的计算机背景的。为了能像SQL一样,方便的查询HDFS中的数据,从而将使用者从繁琐的mapreduce的编写中解放,出现了hive之类的分布式系统的结构化数据解决方案。 1.4.大数据的计算模式 计算模式,即大数据的数据的运算是什么类型的?根据不同的需求计算可以分为三种模式:

在线拍卖系统|基于Springboot的在线拍卖系统设计与实现(源码+数据库+文档)

在线拍卖系统目录 基于Springboot的在线拍卖系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台: 2、后台 用户功能模块 5.2用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,CSDN平台Java领域优质创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。✌️ 主要项目:小程序、SpringBoot、SSM、Vue、Html、Jsp、Nodejs等设计与开发。 🍅文末获取源码联系🍅 基于Springboot的在线拍卖系统设计与实现 一、前言 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单管理、留言板管理、系统管理,用户;首页、个人中心、历史竞拍管理、竞拍订单管理、留言板管理,前台首页;首页、拍卖商品、竞拍公告、留言反馈、个人中心、后台管理等功能。系统中管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对后台有相应的操作权限。 关键词:在线拍卖系统 ;Spring Boot框架;Mysql数据库 二、系统设计 系统功能结构如图 三、系统功能设计 1、前台: 用户登录进入在线拍卖系统可以首页、拍卖商品、竞拍公告、留言反馈、个人中心、后台管理等内容,如图5-16所示。 图5-16前台首页功能界面图 登录、用户注册,在用户注册页面通过填写用户名、密码、姓名、身份证、手机、邮箱、地址等信息进行注册、登录,如图5-17所示。 图5-17用户注册、登录界面图 拍卖商品,在拍卖商品页面可以填写商品名称;商品类型、图片、价格、活动时间、活动状态等内容,进行竞拍,如图5-18所示。 图5-18拍卖商品界面图 留言反馈,在留言反馈页面可以填写留言内容等内容,并可根据需要对留言反馈进行立即提交操作,如图5-19所示。 图5-19留言反馈界面图 竞拍公告,在竞拍公告页面可以填写公告信息等内容,并可根据需要对竞拍公告进行提交操作,如图5-20所示。 图5-20竞拍公告界面图 2、后台 用户功能模块 管理员登录,管理员通过输入用户名、密码、角色等信息进行系统登录,如图5-1所示。 图5-1管理员登录界面图 管理员登录进入在线拍卖系统可以查看首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单管理、留言板管理、系统管理等内容,如图5-2所示。 图5-2管理员功能界面图 修改密码,在修改密码页面可以填写原密码、新密码、确认密码等内容,并可根据需要对修改密码进行详情,修改或删除等操作,如图5-3所示。 图5-3修改密码界面图 用户管理,在用户管理页面可以填写用户名、密码、姓名、性别、头像、身份证、手机、邮箱、地址等内容,并可根据需要对用户管理进行,修改或删除等操作,如图5-4所示。 图5-4用户管理界面图 商品类型管理,在商品类型管理页面可以填写商品类型等进行修改,删除或查看详细内容等操作,如图5-5所示。 图5-5商品类型管理界面图 拍卖商品管理,在拍卖商品管理页面可以查看商品名称;商品类型、图片、价格、活动时间、活动状态等内容,并可根据需要对拍卖商品管理进行详情,修改,删除或详细内容等操作,如图5-6所示。 图5-6拍卖商品管理界面图 竞拍公告 ,在竞拍公告页面可以查看标题、简介、图片等内容,并可根据需要对竞拍公告进行详情,修改,删除或详细内容等操作,如图5-7所示。 图5-7竞拍公告界面图 轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图5-8所示。 图5-8轮播图管理界面图 历史竞拍管理,在历史竞拍管理页面可以查看商品名称;商品类型、日期、价格、用户名、姓名、手机、地址、审核回复、审核状态、审核等内容,并可根据需要对历史竞拍管理进行详情,修改,删除或详细内容等操作,如图5-9所示。 图5-9历史竞拍管理界面图 竞拍订单管理,在竞拍订单管理页面可以查看订单编号、商品名称;商品类型、成交价格、发布日期、用户名、姓名、手机、邮箱、地址、是否支付等内容,并可根据需要对竞拍订单管理进行详情,修改,删除或详细内容等操作,如图5-10所示。 图5-10竞拍订单管理界面图 留言板管理,在留言板管理页面可以查看用户名、留言内容、回复内容等内容,并可根据需要对留言板管理进行详情,修改,删除或详细内容等操作,如图5-11所示。 图5-11留言板管理界面图 5.2用户功能模块 用户登录进入在线拍卖系统可以查看首页、个人中心、历史竞拍管理、竞拍订单管理、留言板管理等内容,如图5-12所示。 图5-12用户功能界面图 历史竞拍管理,在历史竞拍管理页面可以查看商品名称;商品类型、日期、价格、用户名、姓名、手机、地址、审核回复、审核状态、审核等内容,并可根据需要对历史竞拍管理进行详情,修改,删除或详细内容等操作,如图5-13所示。 图5-13历史竞拍管理界面图 留言板管理,在留言板管理页面可以查看用户名、留言内容、回复内容等内容,并可根据需要对留言板管理进行详情,修改,删除或详细内容等操作,如图5-14所示。 四、数据库设计 (1) 用户管理实体属性图如下所示:

Python-凯斯西储大学(CWRU)轴承数据解读与分类处理

目录 1 数据集解读 1.1 振动信号数据通常以时域显示 1.2 凯斯西储大学轴承数据集 描述的是什么数据? 1.3 实验平台介绍 待测轴承: 1.4 以上三个不同位置的振动数据的区别解读 1.5 官网数据集介绍 2 数据集分类与制作 2.1 数据集分类解读 2.2 数据集处理与制作 3 基于Python的故障诊断和分类的研究思路 3.1 关于轴承故障类型分类的方法探讨 3.2 重点介绍关于轴承故障数据时频图像分类的方法 往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 Python轴承故障诊断 (一)短时傅里叶变换STFT Python轴承故障诊断 (二)连续小波变换CWT_pyts 小波变换 故障-CSDN博客 Python轴承故障诊断 (三)经验模态分解EMD_轴承诊断 pytorch-CSDN博客 Pytorch-LSTM轴承故障一维信号分类(一)_cwru数据集pytorch训练-CSDN博客 Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客 Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客 Python轴承故障诊断 (四)基于EMD-CNN的故障分类-CSDN博客 Python轴承故障诊断 (五)基于EMD-LSTM的故障分类-CSDN博客 Python轴承故障诊断 (六)基于EMD-Transformer的故障分类-CSDN博客 Python轴承故障诊断 (七)基于EMD-CNN-LSTM的故障分类-CSDN博客 Python轴承故障诊断 (八)基于EMD-CNN-GRU并行模型的故障分类-CSDN博客 基于FFT + CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-CSDN博客 基于FFT + CNN - Transformer 时域、频域特征融合的轴承故障识别模型-CSDN博客 大甩卖-(CWRU)轴承故障诊数据集和代码全家桶-CSDN博客 Python轴承故障诊断 (九)基于VMD+CNN-BiLSTM的故障分类-CSDN博客 Python轴承故障诊断 (十)基于VMD+CNN-Transfromer的故障分类-CSDN博客 Python轴承故障诊断 (11)基于VMD+CNN-BiGRU-Attenion的故障分类-CSDN博客

Mysql 报 java.sql.SQLException:null,message from server:“Host ‘‘ is not allowed to connect.解决方案

这个错误i是因为mysql数据库没有放开远程访问权限引起的,以mysql8为例 首先进入Mysql 安装目录,然后输入命令:mysql -uroot -p ;具体参见下图: 再输入use mysql; 回车执行, 接着输入,show tables; 回车执行 输入,select host from user; 回车执行,这里特别说明一下,我这个是已经放开了远程访问权限,正常报错的情况,host下应全部都为localhost,说明mysql只允许本机连接 输入,update user set host =‘%’ where user =‘root’; 回车执行 6,最后,再输入 flush privileges; 进行权限刷新,然后再回去重新启动就没有问题了