jenkins连接mysql_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系统设置界面配置数据库连接

4978cf83734960908ba6b2afd5b8f097.png

使用

插件安装好以后就可以通过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

}复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值