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

MySQL Host 被封锁解决方案(全版本适用 + Java 后端优化)

引言

MySQL 中 “Host is blocked because of many connection errors” 是生产环境常见问题,若处理不当会导致服务中断。本文结合 MySQL 官方文档(5.5/8.0)Java 后端最佳实践及企业级经验,提供从 “快速解封” 到 “根源优化” 的全链路解决方案,覆盖 MySQL 全版本(5.5~8.0),并重点说明 Java 后端如何避免此类问题。

一、错误机制:为什么 IP 会被封锁?

根据 MySQL 官方文档,MySQL 内置 主机缓存(Host Cache) 机制,用于记录连接状态:

  • 触发条件:同一 IP 短时间内产生超过 max_connection_errors 阈值的连接错误(如认证失败、连接中断)。
  • 默认阈值max_connection_errors = 10(MySQL 5.5/8.0 均默认此值)。
  • 封锁结果:MySQL 会将该 IP 加入 “不可信列表”,拒绝后续连接,直到手动解封或重启服务。

二、全版本通用解决方案:快速解封 IP

无论 MySQL 版本(5.5/5.6/5.7/8.0),以下方法均可快速解除 IP 封锁。

2.1 手动解封:FLUSH HOSTS 命令

通过 MySQL 内置命令清空主机缓存,立即恢复连接。

方式 1:MySQL 客户端执行(推荐)

bash

# 登录 MySQL(替换实际用户名和密码)
mysql -uroot -p"你的密码"# 执行解封(所有版本均支持)
mysql> FLUSH HOSTS;

  • 权限要求
    • MySQL 5.5-5.7:需 RELOAD 权限(GRANT RELOAD ON *.* TO 'user'@'localhost';);
    • MySQL 8.0:需 SYSTEM_VARIABLES_ADMIN 或 SUPER 权限。

方式 2:通过 mysqladmin 命令(适合远程操作)

bash

# 语法:mysqladmin flush-hosts [参数]
mysqladmin flush-hosts -h"数据库IP" -P"端口" -u"用户名" -p"密码"# 示例(本地数据库,端口 3306):
mysqladmin flush-hosts -uroot -p123456

2.2 调整阈值:max_connection_errors

若需减少封锁频率,可调整 max_connection_errors 阈值(默认 10)。此变量是 MySQL 官方定义的连接安全控制参数

操作步骤(永久生效)

  1. 查看当前值(登录 MySQL 后执行):

    sql

    SHOW VARIABLES LIKE 'max_connection_errors';
    
  2. 临时修改(重启后失效)

    sql

    SET GLOBAL max_connection_errors = 100;  -- 推荐值(平衡安全与可用性)
    
  3. 永久生效(修改配置文件)
    编辑 MySQL 配置文件(如 /etc/my.cnf 或 /etc/mysql/my.cnf),在 [mysqld] 段添加:

    ini

    max_connection_errors = 100
    

    保存后重启 MySQL 服务:

    bash

    service mysql restart  # 或 systemctl restart mysql(CentOS 7+)
    

三、不同版本差异:5.5 vs 8.0

核心方案通用,但需注意以下差异:

功能MySQL 5.5MySQL 8.0
FLUSH HOSTS 权限需 RELOAD 权限需 SYSTEM_VARIABLES_ADMIN 或 SUPER
主机缓存优化无额外参数新增 host_cache_size(默认 279)
默认 max_connection_errors1010

四、Java 后端优化:从根源避免连接错误

调整阈值仅为临时方案,必须优化 Java 应用的连接逻辑,从根源减少错误。

4.1 使用高性能连接池(HikariCP)

连接池可复用连接,避免短时间内大量新建 / 销毁连接导致的错误。HikariCP 是 Java 生态中性能最优的连接池之一。

Spring Boot 配置示例

properties

# application.properties
spring.datasource.hikari.maximum-pool-size=20       # 最大连接数(根据业务量调整)
spring.datasource.hikari.minimum-idle=5            # 最小空闲连接数
spring.datasource.hikari.idle-timeout=300000       # 空闲连接超时(5分钟,避免频繁关闭)
spring.datasource.hikari.connection-timeout=30000   # 连接超时(30秒,避免网络波动误判)
spring.datasource.hikari.max-lifetime=1800000      # 连接最大存活时间(30分钟,避免 MySQL wait_timeout 切断)

4.2 严格管理连接生命周期

使用 try-with-resources 自动关闭连接,避免连接泄漏(未关闭的连接会被 MySQL 视为 “异常中断”)。

代码示例

java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class MySQLDemo {public static void main(String[] args) {String url = "jdbc:mysql://192.168.7.188:3306/mydb";String user = "root";String password = "111111";// try-with-resources 自动关闭连接(Java 7+)try (Connection conn = DriverManager.getConnection(url, user, password);Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM users")) {while (rs.next()) {System.out.println(rs.getString("username"));}} catch (Exception e) {e.printStackTrace();}}
}

4.3 异常处理与指数退避重试

连接失败时,避免立即重复重试(会增加 MySQL 错误计数)。建议添加指数退避策略。

代码示例

java

import java.sql.Connection;
import java.sql.DriverManager;
import java.util.concurrent.TimeUnit;public class RetryConnection {private static final int MAX_RETRIES = 3;private static final int INITIAL_DELAY = 1000; // 初始延迟 1 秒public static Connection getConnectionWithRetry() throws Exception {int retries = 0;while (retries < MAX_RETRIES) {try {return DriverManager.getConnection(url, user, password);} catch (Exception e) {retries++;if (retries >= MAX_RETRIES) throw new Exception("连接失败", e);// 指数退避:延迟时间 = 初始延迟 * (2^重试次数)long delay = INITIAL_DELAY * (long) Math.pow(2, retries);TimeUnit.MILLISECONDS.sleep(delay);}}throw new Exception("连接失败");}
}

4.4 主从架构:读写分离配置

若 MySQL 为主从架构,Java 应用需配置读写分离,避免主库或从库单独触发封锁。

ShardingSphere-JDBC 配置示例

yaml

# application.yml
spring:shardingsphere:data-sources:master:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://主库IP:3306/mydbusername: rootpassword: 111111slave:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://从库IP:3306/mydbusername: rootpassword: 111111rules:readwrite-splitting:data-sources:rw-ds:write-data-source-name: masterread-data-source-names: slave

五、总结

MySQL “Host 被封锁” 问题需通过 “快速解封 + 参数调整 + Java 后端优化” 三步解决:

  1. 快速解封:使用 FLUSH HOSTS 或 mysqladmin flush-hosts 清空缓存;
  2. 参数调整:修改 max_connection_errors 阈值(平衡安全与可用性);
  3. Java 优化:通过连接池、连接生命周期管理、指数退避重试,从根源减少连接错误。

参考链接

  • MySQL 5.5 Host Cache 官方文档
  • MySQL 8.0 系统变量文档
  • HikariCP 官方配置指南
  • ShardingSphere 读写分离文档

相关文章:

MySQL Host 被封锁解决方案(全版本适用 + Java 后端优化)

引言 MySQL 中 “Host is blocked because of many connection errors” 是生产环境常见问题&#xff0c;若处理不当会导致服务中断。本文结合 MySQL 官方文档&#xff08;5.5/8.0&#xff09;、Java 后端最佳实践及企业级经验&#xff0c;提供从 “快速解封” 到 “根源优化”…...

分类预测 | Matlab实现PSO-RF粒子群算法优化随机森林多特征分类预测

分类预测 | Matlab实现PSO-RF粒子群算法优化随机森林多特征分类预测 目录 分类预测 | Matlab实现PSO-RF粒子群算法优化随机森林多特征分类预测分类效果**功能概述****算法流程** 分类效果 功能概述 数据预处理 读取Excel数据集&#xff0c;划分训练集&#xff08;前260行&#…...

【苍穹外卖】Day01—Mac前端环境搭建

目录 一、安装Nginx &#xff08;一&#xff09;安装Homebrew &#xff08;二&#xff09;Homebrew安装Nginx 1. 执行安装命令&#xff1a; 2. 验证安装&#xff1a; &#xff08;三&#xff09;启动与停止Nginx 二、配置Nginx 1. 替换nginx.conf 2. 替换html文件夹 三…...

anaconda创建环境出错HTTPS

报错信息 warnings.warn( /home/ti-3/anaconda3/lib/python3.12/site-packages/urllib3/connectionpool.py:1099: InsecureRequestWarning: Unverified HTTPS request is being made to host ‘repo.anaconda.com’. Adding certificate verification is strongly advised. Se…...

Nginx 强制 HTTPS:提升网站安全性的关键一步

在当今互联网时代&#xff0c;网站的安全性至关重要。使用 HTTPS 协议可以有效保护用户数据&#xff0c;防止信息泄露和中间人攻击。本文将详细介绍如何在 Nginx 中设置强制 HTTPS&#xff0c;确保所有 HTTP 请求都被自动重定向到 HTTPS。 一、背景与重要性 HTTPS&#xff08…...

青藏高原边界数据总集

关键数据集分类&#xff1a;地表参数数据集空间分辨率&#xff1a;m共享方式&#xff1a;开放获取数据大小&#xff1a;265.87 KB数据时间范围:2016元数据更新时间:2022-04-18 数据集摘要 此边界数据总集包含五种类型的边界&#xff1a; &#xff11;、TPBoundary_2500m&#…...

AI赋能R-Meta分析核心技术:从热点挖掘到高级模型

随着人工智能技术的不断进步&#xff0c;Meta分析作为科学研究中的一种重要方法&#xff0c;也在不断地被赋予新的活力。特别是以ChatGPT为代表的AI大语言模型&#xff0c;为Meta分析提供了更为高效和智能的工具。本文将详细介绍AI赋能R-Meta分析的核心技术&#xff0c;并结合实…...

基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析实践技术应用

在自然和社会科学领域有大量与地理或空间有关的数据&#xff0c;这一类数据一般具有严重的空间异质性&#xff0c;而通常的统计学方法并不能处理空间异质性&#xff0c;因而对此类型的数据无能为力。以地理加权回归为基础的一系列方法&#xff1a;经典地理加权回归&#xff0c;…...

GPT 等decoder系列常见的下游任务

下面用一句话&#xff0b;四个例子&#xff0c;把上面那张“所有下游任务都要微调”架构图说清楚&#xff1a; 核心思路&#xff1a;不管你要做什么任务&#xff0c;都用同一个 Transformer&#xff08;这里是 GPT&#xff0f;Decoder-Only 模型&#xff09;当“特征抽取器”&a…...

java面试每日一背 day1

1.什么是缓存穿透 缓存穿透是指查询一个数据库中根本不存在的数据&#xff0c;导致这个查询请求绕过缓存直接访问数据库的情况。这种情况如果频繁发生&#xff0c;会对数据库造成不必要的压力。 典型特征&#xff1a; &#xff08;1&#xff09;查询的数据在数据库和缓存中都…...

Spring Boot AI 之 Chat Client API 使用大全

ChatClient提供了一套流畅的API用于与AI模型交互,同时支持同步和流式两种编程模型。 流畅API包含构建Prompt组成元素的方法,这些Prompt将作为输入传递给AI模型。从API角度来看,Prompt由一系列消息组成,其中包含指导AI模型输出和行为的指令文本。 AI模型主要处理两类消息: …...

初识Linux · 五种IO模型和非阻塞IO

目录 前言&#xff1a; 五种IO模型 什么是IO IO模型 非阻塞IO 前言&#xff1a; 前文我们已经将网络的基本原理介绍完了&#xff0c;都是通过围绕TCP/IP四层协议&#xff0c;将应用层&#xff0c;传输层&#xff0c;网络层&#xff0c;数据链路层全部介绍完毕&#xff0c…...

牛客网NC15869:长方体边长和计算问题解析

牛客网NC15869:长方体边长和计算问题解析 题目描述 问题分析 设长方体的三条边长为 x, y, z根据题意&#xff0c;三个面的面积分别为&#xff1a; 第一个面面积&#xff1a;a x * y第二个面面积&#xff1a;b x * z第三个面面积&#xff1a;c y * z 解题思路 通过三个面…...

Python60日基础学习打卡D32

我们已经掌握了相当多的机器学习和python基础知识&#xff0c;现在面对一个全新的官方库&#xff0c;看看是否可以借助官方文档的写法了解其如何使用。 我们以pdpbox这个机器学习解释性库来介绍如何使用官方文档。 大多数 Python 库都会有官方文档&#xff0c;里面包含了函数…...

Android本地语音识别引擎深度对比与集成指南:Vosk vs SherpaOnnx

技术选型对比矩阵 对比维度VoskSherpaOnnx核心架构基于Kaldi二次开发ONNX Runtime + K2新一代架构模型格式专用格式(需专用工具转换)ONNX标准格式(跨框架通用)中文识别精度89.2% (TDNN模型)92.7% (Zipformer流式模型)内存占用60-150MB30-80MB迟表现320-500ms180-300ms多线程…...

Flink 核心概念解析:流数据、并行处理与状态

一、流数据&#xff08;Stream Data&#xff09; 1. 有界流&#xff08;Bounded Stream&#xff09; 定义&#xff1a;有明确起始和结束时间的数据集合&#xff0c;数据量固定&#xff0c;处理逻辑通常是一次性计算所有数据。 典型场景&#xff1a; 历史交易数据统计&#xf…...

logits是啥、傅里叶变换

什么是logtis&#xff1f; 在深度学习的上下文中&#xff0c;logits 就是一个向量&#xff0c;下一步通常被投给 softmax/sigmoid 的向量。。 softmax的输出是分类任务的概率&#xff0c;其输入是logits层。 logits层通常产生-infinity到 infinity的值&#xff0c;而softmax层…...

【机器学习基础】机器学习与深度学习概述 算法入门指南

机器学习与深度学习概述 算法入门指南 一、引言&#xff1a;机器学习与深度学习&#xff08;一&#xff09;定义与区别&#xff08;二&#xff09;发展历程&#xff08;三&#xff09;应用场景 二、机器学习基础&#xff08;一&#xff09;监督学习&#xff08;二&#xff09;无…...

Ajax研究

简介 AJAX Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;。 AJAX 是一种在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。 Ajax 不是一种新的编程语言&#xff0c;而是一种用于创建更好更快以及交互性更强的Web应用…...

小数第n位--快速幂+数学

1.快速幂&#xff0c;a*10的n2次方/b可以实现整数位3位是答案&#xff0c;但是数太大会超限&#xff0c;就要想取余 2.要是取前三位的话&#xff0c;那么肯定就是结果取余1000&#xff0c;对于除法来说&#xff0c;就是分母取余b*1000&#xff1b; 蓝桥账户中心 #include<…...

Python包管理工具uv 国内源配置

macOS 下 .config/uv/uv.toml内 pip源 [[index]] url "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/" default true#uv python install 下载源配置无效&#xff0c;需要在项目里配置 # python-install-mirror "https://mirror.nju.edu.cn/githu…...

RK3588 RKNN ResNet50推理测试

RK3588 RKNN ResNet50推理测试 一、背景二、性能数据三、操作步骤3.1 安装依赖3.2 安装rknn-toolkit,更新librknnrt.so3.3 下载推理图片3.4 生成`onnx`模型转换脚本3.5 生成rknn模型3.6 运行rknn模型一、背景 在嵌入式设备上进行AI推理时,我们面临着算力有限、功耗敏感等挑战…...

RUP的9个核心工作流在电商平台项目中的拆解

以下是对RUP的9个核心工作流在电商平台项目中的每个步骤的极度细化拆解,包含具体操作、角色分工、输入输出和案例细节: 1. 业务建模(Business Modeling) 步骤拆解: 识别业务参与者 操作:与市场部、运营部开会,列出所有业务角色(买家、卖家、物流商、支付网关)。 输…...

C++类和对象(2)

类的默认成员函数 类的6个默认成员函数&#xff1a;构造函数、析构函数、拷贝构造函数、赋值运算符重载、取地址& 及 const取地址 操作符重载。 默认成员函数&#xff1a;用户可以实现&#xff0c;但当不显式实现时&#xff0c;编译器会自动生成的成员函数。 构造函数 …...

I.MX6U Mini开发板通过GPIO口测试光敏传感器

原理图 对应的Linux sysfs引脚编号为1&#xff0c;即可导出为gpio1引脚对应规则参考&#xff1a;https://blog.csdn.net/qq_39400113/article/details/127446205 配置引脚参数 #导出编号为1的GPIO引脚&#xff08;对于I.MX6UL来说&#xff0c;也就是GPIO0_IO1/GPIO_1&#xff0…...

AI工程师系列——面向copilot编程

前言 ​ 笔者已经使用copilot协助开发有一段时间了,但一直没有总结一个协助代码开发的案例,特别是怎么问copilot,按照什么顺序问,哪些方面可以高效的生成需要的代码,这一次,笔者以IP解析需求为例,沉淀一个实践案例,供大家参考 当然,其实也不局限于copilot本身,类似…...

左手腾讯CodeBuddy 、华为通义灵码,右手微软Copilot,旁边还有个Cursor,程序员幸福指数越来越高了

当前AI编程助手的繁荣让开发者拥有了前所未有的高效工具选择。从腾讯的CodeBuddy、阿里的通义灵码&#xff0c;到微软的GitHub Copilot和新兴的Cursor&#xff0c;每个工具都有其独特的优势&#xff0c;让程序员可以根据项目需求和个人偏好灵活搭配使用。以下是它们的核心特点及…...

【VLNs篇】02:NavGPT-在视觉与语言导航中使用大型语言模型进行显式推理

方面 (Aspect)内容总结 (Content Summary)论文标题NavGPT: 在视觉与语言导航中使用大型语言模型进行显式推理 (NavGPT: Explicit Reasoning in Vision-and-Language Navigation with Large Language Models)核心问题探究大型语言模型 (LLM) 在复杂具身场景&#xff08;特别是视…...

力扣-有效三角形的个数

1.题目描述 2.题目链接 611. 有效三角形的个数 - 力扣&#xff08;LeetCode&#xff09; 3.题目代码 class Solution {public int triangleNumber(int[] nums) {//先排序Arrays.sort(nums);//若a<b<c,三角形条件可以优化为:ab>cint tempnums.length-1,sum0;while(…...

[Vue]跨组件传值

父子组件传值 详情可以看文章 跨组件传值 Vue 的核⼼是单向数据流。所以在父子组件间传值的时候&#xff0c;数据通常是通过属性从⽗组件向⼦组件&#xff0c;⽽⼦组件通过事件将数据传递回⽗组件。多层嵌套场景⼀般使⽤链式传递的⽅式实现provideinject的⽅式适⽤于需要跨层级…...

Cross-Mix Monitoring for Medical Image Segmentation With Limited Supervision

ζ \zeta ζ is the hyperparameter that controls the mixture rate&#xff0c; u ^ m \hat{u}_m u^m​是mixed version 作者未提供代码...

采用线性优化改进评估配电网的灵活性范围

1引言 在本文中&#xff0c;柔性一词被定义为“响应外部信号对发电或消耗的修正”。 文章组织结构如下&#xff1a;第二节介绍了代表典型柔性配电网资源技术局限性的线性模型&#xff1b;在第三节中建立了一个线性优化问题&#xff1b;第四节提出了聚合算法&#xff1b;第五节评…...

用户缓冲区

1. 基本概念 1.1 用户空间与内核空间 用户空间&#xff08;User Space&#xff09;&#xff1a;用户应用程序运行的内存空间&#xff0c;具有较低的权限&#xff0c;无法直接访问硬件和内核数据结构。内核空间&#xff08;Kernel Space&#xff09;&#xff1a;操作系统内核运…...

1.4 C++之运算符与表达式

运算符与表达式教程 目标 掌握算术运算符&#xff08;, -, *, /&#xff09;和逻辑运算符&#xff08;&&, ||, !&#xff09;。理解表达式优先级规则。实现一个简单计算器程序。 一、算术运算符&#xff1a;像数学课上的加减乘除 1. 四种基本运算 加法&#xff08;…...

目标检测基础知识

如今&#xff0c;使用最新的驾驶辅助技术&#xff08;如车道检测、盲点、交通信号灯等&#xff09;驾驶汽车已经很常见。 如果我们退后一步来了解幕后发生的事情&#xff0c;我们的数据科学家很快就会意识到系统不仅对对象进行分类&#xff0c;而且还在场景中&#xff08;实时…...

实时监控服务器CPU、内存和磁盘使用率

实时监控服务器CPU、内存和磁盘使用率 监控内存使用率&#xff1a; free -g | awk NR2{printf "%.2f%%\t\t", $3*100/$2 }awk NR2{...} 取第二行&#xff08;Mem 行&#xff09;。 $3 为已用内存&#xff0c;$2 为总内存&#xff0c;$3*100/$2 即计算使用率。监控磁…...

前端JavaScript-嵌套事件

点击 如果在多层嵌套中&#xff0c;对每层都设置事件监视器&#xff0c;试试看 <!DOCTYPE html> <html lang"cn"> <body><div id"container"><button>点我&#xff01;</button></div><pre id"output…...

【ULR #1】打击复读 (SAM, DAG链剖分)

好牛的题。 DAG链剖分好牛的 trick。 题意 给定一个字符集大小为 4 4 4&#xff0c;长度为 n n n 的字符串 S S S&#xff0c;同时给定两个长度为 n n n 的数组 { w l i } , { w r i } \{wl_i\}, \{wr_i\} {wli​},{wri​}。 定义一个字符串 T T T 的左权值为 v l ( T…...

Web3 领域中的一些专业术语

1. Uniswap 是什么&#xff1a; Uniswap 是一个去中心化的交易所&#xff0c;运行在以太坊区块链上&#xff0c;相当于一个“无人管理的货币兑换市场”。它允许用户直接用加密钱包&#xff08;如 MetaMask&#xff09;交换不同类型的数字货币&#xff08;称为代币&#xff09;…...

Vue组件通信方式及最佳实践

1. Props / 自定义事件 (父子通信) 使用场景 父子组件直接数据传递 代码实现 <!-- Parent.vue --> <template><Child :message"parentMsg" update"handleUpdate" /> </template><script setup> import { ref } from vue…...

JUC并发编程(下)

五、共享模型之内存 JMM&#xff08;java内存模型&#xff09; 主存&#xff1a;所有线程共享的数据&#xff08;静态成员变量、成员变量&#xff09; 工作内存&#xff1a;每个线程私有的数据&#xff08;局部变量&#xff09; 简化对底层的控制 可见性 问题 线程t通过r…...

Go语言中new与make的深度解析

在 Go 语言中&#xff0c;new 和 make 是两个用于内存分配的内置函数&#xff0c;但它们的作用和使用场景有显著区别。 理解它们的核心在于&#xff1a; new(T): 为类型 T 分配内存&#xff0c;并将其初始化为零值&#xff0c;然后返回一个指向该内存的指针 (*T)。make(T, ar…...

Xilinx 7Series\UltraScale 在线升级FLASH STARTUPE2和STARTUPE3使用

一、FPGA 在线升级 FPGA 在线升级FLASH时&#xff0c;一般是通过逻辑生成SPI接口操作FLASH&#xff0c;当然也可以通过其他SOC经FPGA操作FLASH&#xff0c;那么FPGA就要实现在启动后对FLASH的控制。 对于7Series FPGA&#xff0c;只有CCLK是专用引脚&#xff0c;SPI接口均为普…...

redisson-spring-boot-starter 版本选择

以下是更详细的 Spring Boot 与 redisson-spring-boot-starter 版本对应关系&#xff0c;按照 Spring Boot 主版本和子版本细分&#xff1a; 1. Spring Boot 3.x 系列 3.2.x 推荐 Redisson 版本&#xff1a;3.23.1&#xff08;最新稳定版&#xff0c;兼容 Redis 7.x&#xf…...

QML定时器Timer和线程任务WorkerScript

定时器 Timer 属性 interval: 事件间隔毫秒repeat: 多次执行&#xff0c;默认只执行一次running: 定时器启动triggeredOnStart: 定时器启动时立刻触发一次事件 信号 triggered(): 定时时间到&#xff0c;触发此信号 方法 restart(): 重启定时器start(): 启动定时器stop(): 停止…...

Jsoup解析商品信息具体怎么写?

使用 Jsoup 解析商品信息是一个常见的任务&#xff0c;尤其是在爬取电商网站的商品详情时。以下是一个详细的步骤和代码示例&#xff0c;展示如何使用 Jsoup 解析商品信息。 一、准备工作 确保你的项目中已经添加了 Jsoup 依赖。如果你使用的是 Maven&#xff0c;可以在 pom.…...

jenkins数据备份

jenkins数据备份一般情况下分为两种, 1.使用crontab进行备份.这种备份方式是技术人员手动填写的备份的时候将workspace目录排除. 2.使用jenkins插件备份. 下载备份插件 ThinBackup,这里已经下载完成,如果没下载的情况下点击 安装好之后重启jenkins(直接点击插件安装位置的闲…...

IP核警告,Bus Interface ‘AD_clk‘: ASSOCIATED_BUSIF bus parameter is missing.

创建IP核生成输出的clk信号无法在GUI&#xff08;customization GUI&#xff09;显示clk信号&#xff0c;并且出现如下2个warning&#xff1a; [IP_Flow 19-3153] Bus Interface AD_clk: ASSOCIATED_BUSIF bus parameter is missing. [IP_Flow 19-4751] Bus Interface AD_clk:…...

Nginx配置同一端口不同域名或同一IP不同端口

以下是如何在Nginx中配置同一端口不同域名&#xff0c;以及同一IP不同端口的详细说明&#xff1a; 一、同一端口不同域名&#xff08;基于名称的虚拟主机&#xff09; 场景&#xff1a; 通过80端口&#xff0c;让 example.com 和 test.com 指向不同的网站目录&#xff08;如 /…...

一键启动多个 Chrome 实例并自动清理的 Bash 脚本分享!

目录 一、&#x1f4e6; 脚本功能概览 二、&#x1f4dc; 脚本代码一览 三、&#x1f50d; 脚本功能说明 &#xff08;一&#xff09;✅ 支持批量启动多个 Chrome 实例 &#xff08;二&#xff09;✅ 每个实例使用独立用户数据目录 &#xff08;三&#xff09;✅ 启动后自…...