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数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql隔离级别 简书_数据库事务和四
- 下一篇: olap与mysql_MySQL与OLA