MySql教程

jenkins流水线使用mysql数据库

本文主要是介绍jenkins流水线使用mysql数据库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

jenkins流水线使用mysql数据库

背景

在某些情况下, 我们可能需要通过jenkins连接数据库做一些数据的持久化操作

环境准备

mysql数据库

以往安装mysql数据库都是在网上先找的安装教程,捣鼓半天才能安装上。后来发现通过docker安装mysql好简单,所以本次通过docker来安装mysql。

安装

  1. 安装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
    复制代码
  2. 安装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
    复制代码
  3. 准备配置了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
    复制代码
  4. 启动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

安装

  1. 在jenkins插件管理页面安装database和MySQL Database Plugin
  2. 在jenkins系统设置界面配置数据库连接

https://user-gold-cdn.xitu.io/2020/2/24/1707540348225194?w=1920&h=776&f=png&s=59974

使用

插件安装好以后就可以通过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数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!