Docker+Jenkins自动化部署SpringBoot项目【详解git,jdk,maven,ssh配置等各种配置,附有示例+代码】
文章目录
- Docker+Jenkins部署SpringBoot项目
- 一.准备工作
- 1.1安装jdk11
- 1.2安装Maven
- 二.Docker安装Jenkins
- 2.1安装Docker
- 2.2 安装Jenkins
- 2.3进入jenkins
- 三.Jenkins设置
- 3.1安装jenkins插件
- 3.2全局工具配置
- 全局配置jdk
- 全局配置maven
- 全局配置git
- 3.3 系统配置
- 安装 Publish Over SSH 插件
- 配置 SSH 服务器
- Gitee 配置
- 添加 Gitee配置
- 四.构建项目
- 4.0 准备工作
- 4.1构建项目一
- 4.1.1 新建项目
- 4.1.2 配置源码管理
- 4.1.3 构建触发器
- 4.2 构建项目二
Docker+Jenkins部署SpringBoot项目

Jenkins 是一个流行的开源自动化服务器,主要用于 持续集成(CI) 和 持续部署(CD),它可以帮助开发团队自动化构建、测试和部署过程,提高软件开发效率。
Jenkins 的作用
持续集成(CI,Continuous Integration)
- 每次代码提交后自动构建和测试,确保代码的正确性。
- 及时发现问题,提高团队协作效率。
- 减少“集成地狱”,即多人开发时的代码合并问题。
持续部署(CD,Continuous Deployment / Delivery)
- 持续交付(Continuous Delivery):代码经过自动化测试和打包后,能够手动部署到生产环境。
- 持续部署(Continuous Deployment):在持续交付的基础上,自动化发布到生产环境。
一.准备工作
1.1安装jdk11
安装jdk1.8会出兼容性问题,建议安装jdk11
首先在 /usr/local 下创建java文件夹,将openjdk-11+28_linux-x64_bin.tar压缩包在次文件下解压缩,

解压缩后查看Java文件夹中的东西,出现jdk-11,解压成功。


配置环境变量, 注意路径
vim /etc/profile

#刷新配置文件
source /etc/profile
#查看版本
java -version

1.2安装Maven
https://maven.apache.org/docs/history.html
这里安装的是maven3.8.6
使用root用户登录linux
#解压
tar -zxvf apache-maven-3.8.6-bin.tar.gz
#移动到/usr/local
mv apache-maven-3.8.6 /usr/local
#进入/usr/local
cd /usr/local
#重命名为maven
mv apache-maven-3.8.6/ maven
#配置环境变量
vim /etc/profile
{
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
}



查看maven版本是否安装成功:

在maven文件夹下创建maven仓库目录
mkdir mavenRepository
编辑配置文件,配置Maven加速镜像地址和本地仓库目录
#创建maven仓库目录
mkdir /usr/local/maven/ck
#编辑配置文件
vim /usr/local/maven/conf/settings.xml
<localRepository>/usr/local/maven/ck</localRepository><mirrors><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror></mirrors>

二.Docker安装Jenkins
2.1安装Docker
略,请查看《Centos7安装Docker》
2.2 安装Jenkins
#创建jenkins_home数据挂载目录
mkdir /mnt/jenkins_home
#赋值权限,否则后慢慢挂载会失败,这里我们给最高权限
chmod -R 777 /mnt/jenkins_home
#拉取jenkins镜像
docker pull jenkins/jenkins:lts-jdk11#启动jenkins容器
docker run -d --name=jenkins -p 8081:8080 --privileged=true \
-v /mnt/jenkins_home:/var/jenkins_home \
-v /usr/local/java/jdk-11:/usr/local/java/jdk-11 \
-v /usr/local/maven:/usr/local/maven \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts-jdk11
#授予docker的操作权限给jenkins等容器使用
chmod a+rw /var/run/docker.sock
参数说明:
-v /mnt/jenkins_home:/var/jenkins_home:是对容器内存储Jenkins的一些配置信息的文件夹
-v /usr/local/java/jdk-11:/usr/local/java/jdk-11:是把linux下的jdk和容器内的关联(配置Jenkins时使用)
-v /usr/local/maven:/usr/local/maven:是把linux下的maven和容器内的关联(配置Jenkins时使用)
-v $(which docker):/usr/bin/docker:是把linux下的docker和容器内的关联
-v /var/run/docker.sock:/var/run/docker.sock:是可以在Jenkins容器里使用我们Linux下的docker。
如果出现上图错误,尝试
docker rm -f $(docker ps -a -q)
然后在执行上述的启动jenkins命令。
2.3进入jenkins
启动:service jenkins start
重启:service jenkins restart
停止:service jenkins stop

获取初始密码
#查看容器id
docker ps
#查看jenkins容器日志
docker logs (jenkins容器id)



6ea9894b9ab1408fb8f85ef7487e3678
三.Jenkins设置
3.1安装jenkins插件
此处本人先按照的csdn上的文档进行的<安装推荐的插件>方式,但是选择这个方式安装插件后续会出错,已经亲身尝试过三次,均出错。所以在后面选择了《选择插件来安装》的方式来安装插件。






进入Jenkins管理后台


依次搜索安装 Maven Integration 和 Publish Over SSH 以及 Gitee 三个插件安装即可
在Jenkins启动成功后,安装以下三个插件能够增强其功能,满足特定的项目需求:
- Gitee
功能:Gitee插件允许Jenkins与Gitee代码仓库集成,支持从Gitee仓库中拉取代码、触发构建任务。这对于使用Gitee进行源代码管理的团队非常有用,能简化CI/CD流程。
安装:在“插件管理”界面,搜索“Gitee”插件并安装。安装后,可以在Jenkins的项目配置中添加Gitee仓库的访问信息,配置Webhook以便代码提交时自动触发构建。 - Maven Integration
功能:Maven Integration插件允许Jenkins与Maven无缝集成,使得Jenkins可以直接调用Maven进行项目的构建、测试和打包。这对于Java项目尤其重要,因为Maven能够自动管理项目依赖、编译代码,并生成可部署的包(如JAR、WAR)。
安装:在Jenkins管理界面中,导航到“插件管理” -> “可选插件”,搜索“Maven Integration”并点击“安装”。 - Publish Over SSH
功能:Publish Over SSH插件允许Jenkins通过SSH将构建生成的文件(如JAR、WAR包)安全地传输到远程服务器上。这对于部署过程至关重要,尤其是当需要将构建产物自动部署到生产或测试服务器时。
安装:同样在“插件管理”界面,搜索“Publish Over SSH”并安装。安装后,你可以在“系统管理”中配置SSH服务器的连接信息。
通过安装这些插件,Jenkins能够更好地支持项目构建、打包、部署和代码管理,大大提高自动化部署的效率和灵活性。

3.2全局工具配置
全局配置jdk 、maven、git
全局配置jdk
- 为什么需要:Jenkins本身是基于Java的应用,并且许多构建工具(如Maven、Gradle)也依赖JDK。因此,配置JDK是必不可少的。
- 配置方法:在Jenkins的“系统管理” -> “全局工具配置”中,找到JDK配置部分,点击“添加JDK”,指定JDK的安装路径,或者选择自动安装。

全局配置maven
- 为什么需要:Maven是Java项目构建的标准工具,用于依赖管理、代码编译、测试和打包。通过配置Maven,Jenkins可以调用Maven进行项目构建。
- 配置方法:在“全局工具配置”中找到Maven配置部分,点击“添加Maven”,指定Maven的安装路径,或者选择自动安装。


全局配置git
- 为什么需要:大多数项目都使用Git进行源代码管理。通过配置Git,Jenkins可以从Git仓库中拉取代码并进行构建。
- 配置方法:在“全局工具配置”中找到Git配置部分,添加Git安装路径,或者选择自动安装。确保Jenkins可以访问正确版本的Git(由于 Jenkins 容器中已经存在 git 了,所以这里不需要额外安装 git,默认即可)。

3.3 系统配置
安装 Publish Over SSH 插件
在3.1中已经安装过,跳过即可
配置 SSH 服务器
插件安装完成后,返回“系统管理”页面,选择“系统配置”或“Configure System”。
向下滚动页面,找到 Publish Over SSH 部分。
点击“添加”按钮,配置一个新的SSH服务器:
- Name: 为服务器配置一个易记的名称。
- Hostname: 输入目标服务器的IP地址或主机名。
- Username: 输入用于登录到目标服务器的用户名。
- Remote Directory: 指定在远程服务器上的默认目录,Jenkins将把构建产物传输到此目录。
点击“测试配置”或“Test Configuration”按钮,验证Jenkins是否能够成功连接到目标服务器。


保存配置,配置完成后,点击页面底部的“保存”或“应用”按钮,以确保你的设置被保存。
Gitee 配置
通过配置Gitee,Jenkins能够与Gitee代码仓库集成,实现代码的自动拉取和构建。
-
同样在Jenkins的插件管理中,搜索
Gitee并安装该插件(安装过可以忽略此步骤。) -
获取 Gitee API Token
登录到Gitee账户,
在设置里面找到“私人令牌”部分,点击“生成新的令牌”。
根据需要选择令牌的权限,例如“repo”(代码仓库相关操作)和“user_info”(用户信息查看)。
生成令牌后,复制并保存。


007cfbfae48459bf61866aa9cf973d93
007cfbfae48459bf61866aa9cf973d93
添加 Gitee配置
- 在“系统配置”页面,找到Gitee 配置。
- 配置你的Gitee仓库信息:
- 链接名: 输入你的Gitee仓库的URL(HTTPS),即 就是你自己创建的gitee仓库地址。
- Gitee域名URL: 输入Gitee域名完整URL地址。
- 证书令牌: 选择Gitee API令牌。


通过上述步骤,就已经在Jenkins中完成了 Publish Over SSH 和 Gitee 的配置。这些配置使得Jenkins能够安全地将构建产物部署到远程服务器,同时自动拉取和构建Gitee上的代码,为CI/CD流程提供了基础支持。
最后重启jenkins,如图:


四.构建项目
4.0 准备工作
首先在idea创建一个测试的工程项目:demo,
然后手动创建Dockerfile文件:如图

#使用OpenJDK 11 JRE精简版作为基础镜像。
FROM openjdk:11-jre-slim#设置环境变量PARAMS为空字符串
ENV PARAMS=""#将当前目录下的所有JAR文件添加到镜像中的/demo.jar。
ADD *.jar /demo.jar#设置容器启动时执行的命令为使用java -jar运行/demo.jar,并传递环境变量PARAMS。
ENTRYPOINT ["sh","-c","java -jar /demo.jar $PARAMS"]

修改pom文件,为了打包顺利

如果不将
<skip>xxxx</skip>注释掉再加个打包后缀名,当执行打好的jar包时会出错,如图:
然后,进行打包


4.1构建项目一
在Jenkins中新建一个Maven项目的步骤如下:
4.1.1 新建项目
- 在Jenkins首页,点击左侧菜单中的“新建任务”或“New Item”。
- 在弹出的窗口中,为项目输入一个名称,然后选择“构建一个Maven项目”或“Maven Project”。
- 点击“确定”进入项目配置页面。


4.1.2 配置源码管理
- 在项目配置页面,找到“源码管理”部分。
- 选择你使用的版本控制系统(如Git),并输入项目的代码仓库URL。
- 如果仓库需要认证,配置相应的凭证(Credentials),如用户名和密码或SSH密钥。
- 设置仓库中触发构建的分支代码(*/release表示release分支有代码提交则自动触发构建)。

4.1.3 构建触发器
- 配置构建触发器,这可以是轮询SCM(Poll SCM)、Webhook触发、定时构建等。
- 例如,如果你希望在每次代码提交时触发构建,可以选择“GitHub hook trigger for GITScm polling”或“Poll SCM”,并设置合适的时间间隔。







#!/bin/bash
# 服务名称
SERVER_NAME=demo
# 源jar名称,mvn打包之后,target目录下的jar包名称
JAR_NAME=demo-1.0.0-SNAPSHOT
# jenkins下的目录
JENKINS_HOME=/mnt/jenkins_home/workspace/demo
# 等待三秒
echo sleep 3s
sleep 1
echo sleep 2s
sleep 1
echo sleep 1s
sleep 1
echo "结束进程完成"
cd $JENKINS_HOME/target
cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target
# 修改文件权限
chmod 755 $JAR_NAME.jar
echo "看看docker能不能用"
docker -v
echo "停止容器"
# 停止容器
docker stop demo
echo "删除容器"
# 删除容器
docker rm demo
echo "删除镜像"
# 删除镜像
docker rmi demo
echo "打包镜像"
# 打包镜像
docker build -t demo
echo "运行镜像"
# 运行镜像
docker run -d -p 9999:9999 --name demo demo
此时点击立即构建,会失败。

点开之后可以看见构建信息:


4.2 构建项目二
项目一失败了,再继续再创建新的项目,步骤和一类似








将以下内容复制在deploy.sh文件中

export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATHJAR_PATH=/root/dataJARFILE=demo-0.0.1-SNAPSHOT-kwh.jarps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9java -jar $JAR_PATH/$JARFILE > out.log &
if [ $? = 0];thensleep 30tail -n 50 out.log
fils -lt|awk 'NR>${print $NF}'|xargs rm -rf

最后保存。


点开可以查看构建信息。

工作空间 可以看到构建之后的项目结构

此时这个项目构建成功。
如何运行构建的项目呢?查看构建信息

然后进入这个文件夹下

运行demo-0.0.1-SNAPSHOT-kwh.jar,此时idea是没有任何运行程序的。

然后测试:

此时jenkins自动化部署项目已经实现。
可能有人会问自动二字体现在何处?莫急莫急,
此时假如你在idea中修改了代码,提交推送到远程仓库,此时由于已经配置jenkins自动化部署,当你将代码推送到远程后,在jenkines中会自动触发构建项目的过程,你只需刷新浏览器即可,就能看到修改的内容,如图:

推送到远程仓库:


推送到远程成功,会立即触发jenkins自动构建项目


此时刷新浏览器即可看到更新内容:(注:由于这里本人没有配置好webhooks自动触发器设置,在这里先手动模拟Jenkins自动构建)
根据上述构建信息找到jar包位置

手动运行jar包

刷新浏览器:构建成功。

学习参考文档:https://blog.csdn.net/qq_51447436/article/details/141194535https://blog.csdn.net/weixin_43755251/article/details/127566967阿里云社区
https://developer.aliyun.com/article/1288762
相关文章:
Docker+Jenkins自动化部署SpringBoot项目【详解git,jdk,maven,ssh配置等各种配置,附有示例+代码】
文章目录 DockerJenkins部署SpringBoot项目一.准备工作1.1安装jdk111.2安装Maven 二.Docker安装Jenkins2.1安装Docker2.2 安装Jenkins2.3进入jenkins 三.Jenkins设置3.1安装jenkins插件3.2全局工具配置全局配置jdk全局配置maven全局配置git 3.3 系统配置安装 Publish Over SSH …...
PCL 点云数学形态学操作(腐蚀)
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 基本原理:使用结构元素(通常为滤波的窗口)的窗口模板作为处理单元,利用形态学中的膨胀与腐蚀相组合即可达到滤波的效果。 点云数据中的数学形态学运算其实和二维图像上的运算非常相似,图像上像素有x,y和亮度值…...
【设计模式】【行为型模式】观察者模式(Observer)
👋hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD 🔥 2025本人正在沉淀中… 博客更新速度 👍 欢迎点赞、收藏、关注,跟上我的更新节奏 🎵 当你的天空突…...
RAGFlow和Dify对比
RAGFlow和Dify都是基于大语言模型(LLM)的应用开发平台,具有相似的功能和应用场景,但它们在技术架构、部署要求和用户体验上存在一些差异。 RAGFlow和Dify对比 2025-02-13 22.08 RAGFlow 技术栈:RAGFlow…...
AI前端开发:蓬勃发展的机遇与挑战
人工智能(AI)领域的飞速发展,正深刻地改变着我们的生活方式,也为技术人才,特别是AI代码生成领域的专业人士,带来了前所未有的机遇。而作为AI应用与用户之间桥梁的前端开发,其重要性更是日益凸显…...
结构型模式---代理模式
概念 代理模式是一种结构型模式,主要用于在客户端和接口之间添加一个中间层,用于在客户端和接口之间进行权限控制或者其他的中间层操作。 使用场景 1、延缓初始化,当我们偶尔需要使用一个重量级的服务对象,如果一直保持该对象的…...
Java面向对象一:相关概念
面向过程&面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二步做什么… 面对过程适合处理一些较为简单的问题面向对象思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行…...
CEF132 编译指南 MacOS 篇 - depot_tools 安装与配置 (四)
1. 引言 在 CEF132(Chromium Embedded Framework)的编译过程中,depot_tools 扮演着举足轻重的角色。这套由 Chromium 项目精心打造的脚本和工具集,专门用于获取、管理和更新 Chromium 及其相关项目(包括 CEFÿ…...
React VS Vue
React 和 Vue 是目前最流行的两个前端框架,它们在设计理念、生态系统和开发体验上各有特点。以下是对 React 和 Vue 的全方位对比: 1. 核心设计理念 React 库而非框架:React 是一个用于构建 UI 的库,专注于视图层,其…...
伺服报警的含义
前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发C#的运动控制程序的时候,一个必要的步骤就是设置伺服报警信号的…...
CSS 属性选择器详解与实战示例
CSS 属性选择器是 CSS 中非常强大且灵活的一类选择器,它能够根据 HTML 元素的属性和值来进行精准选中。在实际开发过程中,属性选择器不仅可以提高代码的可维护性,而且能够大大优化页面的样式控制。本文将结合菜鸟教程的示例,从基础…...
基于STM32、HAL库、HS12864(ST7920,并行接口)C语言程序设计
1、hs12864.h头文件: #ifndef __HS12864_H #define __HS12864_H #ifdef __cplusplus extern "C" {#endif #include "stm32l4xx_hal.h" // 控制线定义 - 根据实际硬件修改 #define HS12864_RS_GPIO_PORT GPIOC #define HS12864_RS_PIN GPIO_PI…...
Python练习11-20
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 题目:判断101-200之间有多少…...
探索ELK 的魅力
在大数据时代,海量日志和数据的收集、存储、处理与可视化分析变得越来越重要。而 ELK 堆栈,由 Elasticsearch、Logstash、Beats 和 Kibana 组成,正是一个强大的开源解决方案,帮助开发者和运维人员高效管理和分析日志数据。本文将详…...
【ROS2综合案例】乌龟跟随
一、前期准备 1.1 安装 1. 首先安装“乌龟跟随”案例的功能包以及依赖项。 安装方式1(二进制方式安装): sudo apt-get install ros-humble-turtle-tf2-py ros-humble-tf2-tools ros-humble-tf-transformations 安装方式2(克…...
多式联运最优路径算法
多式联运的最优路径优化问题涉及运输成本、时间、碳排放等多目标权衡,需结合运输方式(公路、铁路、水路、航空等)的协同性,通过算法模型寻找综合最优解。以下是相关研究进展与算法应用的总结: 一、多式联运路径优化的核…...
GPT-SWARM和AgentVerse的拓扑结构和交互机制
GPT-SWARM和AgentVerse的拓扑结构和交互机制 拓扑结构区别 GPT-SWARM:采用图结构,将语言智能体系统描述为可优化的计算图。图中的每个节点代表一个操作,如语言模型推理或工具使用等特定功能,边则描述了操作之间的信息流,代表智能体之间的通信渠道。多个智能体连接形成的复…...
信号检测和信道均衡的联系
1. 系统模型 假设一个通信系统的数学模型如下: 发送信号: s [ s 1 , s 2 , … , s N ] T \mathbf{s} [s_1, s_2, \dots, s_N]^T s[s1,s2,…,sN]T,其中 s i s_i si 是发送符号。信道矩阵: H \mathbf{H} H(…...
优化线程池关闭机制以避免无限循环
引言 在多线程编程中,正确关闭线程池是一个重要的任务,以确保程序的稳定性和资源的有效利用。本文将探讨一种常见的线程池关闭机制,并提出优化建议,以避免无限循环和资源浪费。 问题描述 在实际开发中,我们经常使用…...
持久性HTTPVS.非持久性HTTP
1. HTTP协议基础 HTTP(HyperText Transfer Protocol)是Web通信的核心协议,定义了客户端(浏览器)与服务器之间传输数据的规则。 在HTTP/1.0及之前的版本中,默认使用非持久性连接,而HTTP/1.1及更…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...



