在某些情况下, 我们可能需要通过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数据库相关推荐

  1. java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构 ...

  2. java 一个大事务下的新增、修改、查询_重新学习Mysql数据库8:MySQL的事务隔离级别实战...

    本文转自:https://blog.csdn.net/sinat_27143551/article/details/80876127 本系列文章将整理到我在GitHub上的<Java面试指南&g ...

  3. jsp import mysql con_jsp的分页查询的代码(mysql数据库)

    [原来没有写过,听朋友说,比较难,就试一下,还是挺简单的,只不过,具体实用方面还得自己写,没有什么难的,自己看看就懂了.bean文件:package bean;/** * jsp+java bea 这 ...

  4. mysql 根据子查询的结果查询朱标_Python - MySQL数据库操作

    Python2 中使用模块 MySQLdb 模块处理数据库的操作,在Python3中使用 PyMySQL Python2 - 数据库的操作 1. MySQLdb 安装 yum -y install M ...

  5. linux java 查询mysql_Linux Java连接MySQL数据库

    Linux(Ubuntu平台)Java通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 解压 jdbc: tar -zxvf mysql-connector-java-5.1.1 ...

  6. jdbc mysql 存储过程查询数据_JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...

    主要内容: JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十一 ...

  7. mysql高级查询面试_高级MySQL数据库面试问题 附答案

    因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题. 1. 如何使用SELECT语句找到你正在运行的服务器的版本并 ...

  8. 外键查询_详解MySQL数据库删除所有表的外键约束、禁用外键约束相关脚本

    概述 数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能.在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表与表之间的 ...

  9. 借助python用Tushare查询股票价格并存入Mysql数据库中

    Tushare是一非常好用的数据接口,金融数据包含广,便利而实用. 本文主要介绍如何通过Tushare的pro接口查询股票数据,并且保存到数据库Mysql中. 首先是安装工具包 import tush ...

最新文章

  1. HDU-1459.非常可乐(BFS )
  2. node 获取表单数据 为空_Java实现数据结构之【链表】
  3. Discuz常见大问题-如何DIY一个独立页面
  4. MyBatis的foreach语句详解
  5. RabbitMQ消息发送和接收
  6. js 获取 屏幕 可用高度...
  7. Android EventBus 3.0.0 使用总结
  8. R开发(part11)--基于S4的面向对象编程
  9. 从头认识Spring-1.7 如何通过属性注入Bean?(1)-如何通过属性向对象注入值?...
  10. Java笔记(三)内部类,容器,泛型和类型安全的容器,迭代器
  11. werkzeug.local
  12. 控制连接数量和密码保护-flashcom教程 密码保护
  13. Q98:三角形网格细分Bezier曲面时,注意三角形顶点的顺序(确保其对应的法向量向外)
  14. 网易云接口获取音乐(转载练习)
  15. PDF编辑器里的测量工具如何使用?
  16. 巴塞尔协议1、2、3内容总结(转)
  17. C语言char转short,将short类型转换为char类型
  18. uniapp 原生js实现公历转农历
  19. 大家好,介绍一下,这是我的新朋友@VP
  20. 阿里工程师修养之:如何量化考核技术人的 KPI ?

热门文章

  1. mysql 乐观锁 version_乐观锁-version的使用
  2. docker volume(数据卷)是什么?(就是在宿主机上挂载的共享文件目录)
  3. pycharm 运行程序时提示错误信息:ModuleNotFoundError: No module named 'pytest' 解决方法
  4. 初学__Python——Python数据类型之数字
  5. java使用stream将List转为Map
  6. 每天学一点儿shell:shell脚本的异步执行
  7. java对象数组覆盖_java – 如何覆盖RAML 1.0中的对象数组属性类型
  8. 微信小程序富文本解析点击图片放大_微信小程序解析富文本过程详解
  9. option:contains后面加变量_什么是配置环境变量,配置以后有什么作用呢?
  10. 先查询再插入的存储过程怎么写_谈一谈 InnoDB(1) - 底层存储文件结构