Docker 下 Yearning 2.2.0 安装与文档收集

2,092 阅读4分钟

为什么使用Yearning

现在这家公司的脚本文件都是放在项目中,由测试人员在发布时执行的。方式落后而且缺少对脚本文件的校验,也缺少审核回滚功能,因此引入了Yearning 来辅助管理SQL上线脚本。

Yearning 的优点

1、主要对DDL、DML做了区分与权限控制,相关权限与角色的配置很灵活。

2、有SQL格式化、SQL关键词提示,支持度当然不如DataGrid,但聊胜于无

3、版本一直在更新,有人维护,社区也较活跃。

4、支持webhook 可以实现钉钉机器人推送、email推送

Yearning 的缺点

1、作者明确说了不支持Oracle等数据,目前只支持MySQL。

2、分库、分表查询不支持。

3、复杂的查询语句支持度不够。(多表,多函数)

4、必须将Yearning和和数据库部署在同一网段内,政府项目的复杂局域网就不要考虑了。


SQL 查询分类

DDL

DDL*Data* Definition Language*数据库*定义语言statements are used to define the database structure or schema.

DDL是SQL语言的四大功能之一。 用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束 DDL不需要commit. CREATE ALTER DROP TRUNCATE COMMENT RENAME

DML

DMLData Manipulation Language数据操纵语言statements are used for managing data within schema objects.

由DBMS提供,用于让用户或程序员使用,实现对数据库中数据的操作。 DML分成交互型DML和嵌入型DML两类。 依据语言的级别,DML又可分成过程性DML和非过程性DML两种。 需要commit. SELECT INSERT UPDATE DELETE MERGE CALL EXPLAIN PLAN LOCK TABLE

DCL

DCLData Control Language数据库控制语言 授权,角色控制等 GRANT 授权 REVOKE 取消授权

TCL

TCLTransaction Control Language事务控制语言 SAVEPOINT 设置保存点 ROLLBACK 回滚 SET TRANSACTION

SQL主要分成四部分

SQL主要分成四部分: (1)数据定义。(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。 (2)数据操纵。(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。 (3)数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。 (4)嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。


Yearning 文档

官方文档

guide.yearning.io/

安装包地址

github.com/cookieY/Yea…

2.0以下版本的安装

python.yearning.io/install/

gitHub

github.com/cookieY/Yea…

docker、k8s部署

blog.51cto.com/juestnow/24…


Yearning 安装

Yearning 无法在windows、mac下面之间安装,所以我用docker 简介安装了Yearning。

环境要求

  • golang支持linux的最低版本为2.6.23.

  • 查看Linux版本:cat /proc/version

  • Docker 对Linux 内核版本的最低要求是3.10

  • mysql版本必须5.7及以上版本,请事先自行安装完毕且创建Yearning库,字符集应为UTF8mb4 (仅Yearning所需mysql版本)

1.Docker下安装MySQL

安装MySQL

  • 搜索镜像 : docker search mysql
  • 安装镜像 : docker pull mysql
  • 根据镜像id删除镜像 : docker rmi ed1ffcb5eff3
  • 运行MySql方式一 :docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
  • 运行MySql方式二 : docker run -di -p 3307:3306 -v /home/docker/mysql/conf.d:/etc/mysql/conf.d -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql mysql
  • 运行MySql方式三 : docker run --name mysql5.6 -p 3306:3306 -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
  • 运行MySql方式四 : docker run -d --rm --name mysql -v F:\docker\images\mysqlDbFile\mysql:/var/lib/mysql -v F:\docker\images\mysqlDbFile\mysqlConf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3305:3306 mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  • 进入MySQL容器 : docker exec -it mysql /bin/bash
  • 登陆MySQL : mysql -u root -p

安装Centos

  • 查看centos镜像列表:docker search centos

查看centos镜像列表

  • 拉取centos 镜像:docker pull centos 默认会拉取最新版本的centos<centos 8>
  • 查看镜像文件:docker images

查看镜像文件

  • 根据镜像image_id创建一个容器: docker run -d -i -t imageID /bin/bash
  • 查看查询镜像、容器状态:**docker ps **

  • 进入centos:docker attach image_id

  • 提前暴露一个Yearning端口:docker run -ti -d --name recursing_snyder -p 4323:4323 image_id

至此centos就安装完成了

centos环境配置

  • 安装git:dnf install git-all ,中间会有提示,一路yes就可以了

  • 安装unzip:yum install -y unzip zip

  • 安装wget:yum -y install wget

  • 安装vim:yum -y install vim*

Yearning 下载与启动

  • 下载zip文件:wget github.com/cookieY/Yea…
  • 解压文件:unzip Yearning-2.2.0.linux-amd64.zip
  • 也可以将文件从本地copy到centos:docker cp /root/test.txt image_id:/root/
    • 下载:docker cp ecef8319d2c8:/root/test.txt /root/
  • 进入Yearning文件夹:cd Yearning
  • 帮助命令:./Yearning -h

  • 初始化:./Yearning -m

  • 启动并指定端口:./Yearning -s -p "4323"

  • 启动并指定ip与端口:./Yearning -s -b "172.27.80.35" -p "8000"