jenkins查询mysql_jenkins流水线使用mysql数据库
在某些情况下, 我们可能需要通过jenkins连接数据库做一些数据的持久化操作
环境准备
mysql数据库
以往安装mysql数据库都是在网上先找的安装教程,捣鼓半天才能安装上。后来发现通过docker安装mysql好简单,所以本次通过docker来安装mysql。
安装
安装docker
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sudo yum-config-manager --enable docker-ce-test
sudo yum-config-manager --disable docker-ce-edge
sudo yum makecache fast
sudo yum install docker-ce-18.09.9
#开机启动docker
sudo systemctl enable docker
#启动docker
sudo systemctl start docker
#创建docker组
sudo groupadd docker
#将当前用户加入docker组
sudo usermod -aG docker $USER
#如果安装失败了,想卸载重装, 可通过下面命令来卸载
yum remove docker-ce
复制代码
安装docker compose
虽然通过Dockerfile就可以定义一个docker容器, 但是如果我们有多个容器需要配合使用时就不是很方便了,因此此处采用了docker compose。 docker compose 是一个像Dockerfile定义 docker 容器一样能够定义容器集群的编排和部署工具,可以很方便地帮助我们实现容器管理。
docker compse的安装:
# 安装 ---二进制包。 如果curl下载不了, 则去此地址手动下载:https://github.com/docker/compose/releases
curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 给下载的docker compose授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose
#链接到usr/bin下,然后就可以通过docker-compsoe命令调用了
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
复制代码
准备配置了myslq容器的docker-compose.yml 配置文件
version : '2'
services:
mysql:
container_name: mydb
image: docker.io/mysql:5.7
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
ports:
- "3306:3306"
volumes:
- ./data:/var/lib/mysql
environment:
MYSQL_DATABASE: devops
MYSQL_ROOT_PASSWORD: root
MYSQL_ROOT_HOST: '%'
restart: always
复制代码
启动mysql容器
在有docker-compose.yml文件的路径下执行下面命令即可启动容器。
ps: 示例中将使用的docker-compose.yml 文件放在了 /home/docker/devops/compose下。可自行修改
cd /home/docker/devops/compose
#检查yml文件是否配置正确, 如果docker-compose.yml有错误,则下面命令会报错
docker-compose config
# 后台方式启动容器
docker-compose up -d
#查看运行中的容器
docker ps
#进入运行中的容器 进入容器后,即可通过 myslq -u root -p的方式登陆myslq数据库了
# mysql的root密码在docker-compose.yml里面的MYSQL_ROOT_PASSWORD项已经配置了
docker exec -ti mydb sh
复制代码
使用
由于我们已经在docker-compse.yml里面暴露了3306端口,因此就可以通过 宿主机ip+端口方式访问mysql 。 如: jdbc:mysql://ip:3306/数据库名称
jenkins方面
虽然jenkins流水线脚本通过groovy编写而且groovy可以使用数据库, 但是如果直接在流水线脚本中通过groovy使用数据库时会面临数据库jdbc驱动加载不到的问题。 经过搜索,发现jenkins已经有了支持数据库的插件: database和MySQL Database Plugin
安装
在jenkins插件管理页面安装database和MySQL Database Plugin
在jenkins系统设置界面配置数据库连接
使用
插件安装好以后就可以通过getDatabaseConnection 和 sql 这两个方法来连接数据库进行操作了.
将sql语句和参数分开是为了避免sql注入,如果不介意这个, 那么就直接把参数写到sql语句里面去吧
getDatabaseConnection(type: 'GLOBAL') {
def sqlString="select id from test_table where job_name= ? and build_number= ?"
def params=['test',11]
sql sql:sqlString,parameters:params
}复制代码
jenkins查询mysql_jenkins流水线使用mysql数据库相关推荐
- java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构 ...
- java 一个大事务下的新增、修改、查询_重新学习Mysql数据库8:MySQL的事务隔离级别实战...
本文转自:https://blog.csdn.net/sinat_27143551/article/details/80876127 本系列文章将整理到我在GitHub上的<Java面试指南&g ...
- jsp import mysql con_jsp的分页查询的代码(mysql数据库)
[原来没有写过,听朋友说,比较难,就试一下,还是挺简单的,只不过,具体实用方面还得自己写,没有什么难的,自己看看就懂了.bean文件:package bean;/** * jsp+java bea 这 ...
- mysql 根据子查询的结果查询朱标_Python - MySQL数据库操作
Python2 中使用模块 MySQLdb 模块处理数据库的操作,在Python3中使用 PyMySQL Python2 - 数据库的操作 1. MySQLdb 安装 yum -y install M ...
- linux java 查询mysql_Linux Java连接MySQL数据库
Linux(Ubuntu平台)Java通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 解压 jdbc: tar -zxvf mysql-connector-java-5.1.1 ...
- jdbc mysql 存储过程查询数据_JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...
主要内容: JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十一 ...
- mysql高级查询面试_高级MySQL数据库面试问题 附答案
因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题. 1. 如何使用SELECT语句找到你正在运行的服务器的版本并 ...
- 外键查询_详解MySQL数据库删除所有表的外键约束、禁用外键约束相关脚本
概述 数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能.在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表与表之间的 ...
- 借助python用Tushare查询股票价格并存入Mysql数据库中
Tushare是一非常好用的数据接口,金融数据包含广,便利而实用. 本文主要介绍如何通过Tushare的pro接口查询股票数据,并且保存到数据库Mysql中. 首先是安装工具包 import tush ...
最新文章
- HDU-1459.非常可乐(BFS )
- node 获取表单数据 为空_Java实现数据结构之【链表】
- Discuz常见大问题-如何DIY一个独立页面
- MyBatis的foreach语句详解
- RabbitMQ消息发送和接收
- js 获取 屏幕 可用高度...
- Android EventBus 3.0.0 使用总结
- R开发(part11)--基于S4的面向对象编程
- 从头认识Spring-1.7 如何通过属性注入Bean?(1)-如何通过属性向对象注入值?...
- Java笔记(三)内部类,容器,泛型和类型安全的容器,迭代器
- werkzeug.local
- 控制连接数量和密码保护-flashcom教程 密码保护
- Q98:三角形网格细分Bezier曲面时,注意三角形顶点的顺序(确保其对应的法向量向外)
- 网易云接口获取音乐(转载练习)
- PDF编辑器里的测量工具如何使用?
- 巴塞尔协议1、2、3内容总结(转)
- C语言char转short,将short类型转换为char类型
- uniapp 原生js实现公历转农历
- 大家好,介绍一下,这是我的新朋友@VP
- 阿里工程师修养之:如何量化考核技术人的 KPI ?
热门文章
- mysql 乐观锁 version_乐观锁-version的使用
- docker volume(数据卷)是什么?(就是在宿主机上挂载的共享文件目录)
- pycharm 运行程序时提示错误信息:ModuleNotFoundError: No module named 'pytest' 解决方法
- 初学__Python——Python数据类型之数字
- java使用stream将List转为Map
- 每天学一点儿shell:shell脚本的异步执行
- java对象数组覆盖_java – 如何覆盖RAML 1.0中的对象数组属性类型
- 微信小程序富文本解析点击图片放大_微信小程序解析富文本过程详解
- option:contains后面加变量_什么是配置环境变量,配置以后有什么作用呢?
- 先查询再插入的存储过程怎么写_谈一谈 InnoDB(1) - 底层存储文件结构