程序员真惹不起!为方便部署,亲自动手把这款SQL工具制作成容器

466 阅读11分钟

程序员真是惹不起啊!看不下去就动手!没有道理可讲。

为什么会有这样的感慨呢,让小编复述一下事情的原委。

小编的公司在2023年1月份发布了一款面向个人免费的SQL开发工具,可以面向多数据库管理的一款纯Web版工具SQL Studio,跨平台支持Windows、MacOS和Linux三种平台。

一位热心网友私信问小编:能不能支持容器部署?因为这款产品的研发正忙于解决大家反馈的各种问题,公司暂时并没有提供容器部署,需要再等等。

等待,可能是一位程序员最不能容忍的事情。 于是,我们这位可爱的网友,自发动手把我司这款SQL工具制作成了容器,并总结了一段图文。

在此,小编非常感谢这位热心网友,同时也分享给各位程序员同行参考。特别申明,这篇文章的代码并未麦聪软件官方确认,仅供大家参考学习!

以下内容转自B站up主“嘿嘿嘿?!!”,转载正文如下:

摘要

SQL Studio 是由 麦聪软件 开发的一款全 web 的数据库管理和开发工具。可以便捷、高效、简单的管理多种数据库如: Oracle 、 PostgreSQL 、 MySQL 、 SQLite 、 SQL Server 、 DM(武汉达梦) 、 KingBase(人大金仓) 等。

目前 SQL Studio 官方并没有提供容器化的部署方案,本文尝试性的将 SQL Studio 制作成容器并通过 docker 和 kubernetes 将其部署。

环境信息

软件版本信息

制作镜像

访问麦聪软件 SQL Studio 下载页,注册账号,下载 SQL Studio Linux 版

www.maicongs.com/#/home/prob…

准备 SQL Studio 资源

[root@vlnx207 sqlstudio]# ls

dockerfile sqlstudio_linux_1.0.2.zip

准备简化启动脚本

vim sqlstudio-start.sh

文件内如如下


#!/bin/bash

  


SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)

APP_JAR=$(cd $SHELL_FOLDER;ls Maicong-SQLStudio-*.jar)

LOG_PATH=$SHELL_FOLDER/log

  


JAVA_OPTS="

-server

-Xms2g

-Xmx4g

-XX:+UseG1GC

-XX:+UseStringDeduplication

-XX:+AlwaysPreTouch

-XX:+PrintGCDetails

-XX:+PrintGCTimeStamps

-XX:+PrintGCCause

-Xloggc:$LOG_PATH/maicong-sqlstudio-gc.log

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=$LOG_PATH/maicong-sqlstudio-heapdump

-Dfile.encoding=utf-8"

  


java $JAVA_OPTS -jar $SHELL_FOLDER/$APP_JAR --spring.config.location=config/maicong.yaml

为简化启动脚本添加执行权限

chmod a+x sqlstudio-start.sh

创建 dockerfile 文件

vim dockerfile

文件内如如下

FROM centos:centos7.9.2009

#容器内用户

USER root

#暴露端口

EXPOSE 18888

#修改系统时区

ENV TZ Asia/Shanghai

#加中文支持

RUN set -x \

&& yum -y install kde-l10n-Chinese telnet \

&& yum -y reinstall glibc-common \

&& yum clean all \

&& localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

ENV.UTF-8

ENV LANGUAGE=zh_CN:zh

ENV LC_ALL=zh_CN.UTF-8

#常用软件安装

RUN set -x \

&& yum update -y \

&& yum install -y telnet net-tools wget curl unzip \

&& yum clean all \

&& rm -rf /tmp/* \

&& rm -rf /var/cache/yum/*

#注入sqlstudio程序

WORKDIR /apps/usr/sqlstudio/

COPY ./sqlstudio_linux_1.0.2.zip /apps/usr/sqlstudio

RUN set -x \

&& unzip -q sqlstudio_linux_1.0.2.zip -d /apps/usr/sqlstudio \

&& rm -rf sqlstudio_linux_1.0.2.zip

#注入简化启动脚本

WORKDIR /apps/usr/sqlstudio/linux

COPY ./sqlstudio-start.sh /apps/usr/sqlstudio/linux/

#将sqlstudio自带的jdk变更为全局变量

ENV JAVA_HOME /apps/usr/sqlstudio/linux/jdk1.8.0_351

ENV JRE_HOME ${JAVA_HOME}/

ENV PATH JAVAHOME/bin:{JAVA_HOME}/bin:{PATH}

ENV CLASSPATH .:JAVAHOME/lib/dt.jar:{JAVA_HOME}/lib/dt.jar:{JAVA_HOME}/lib/tools.jar

#指定启动命令

CMD ["/bin/bash","sqlstudio-start.sh"]

注: 使用该 dockerfile 文件,构建出的镜像较大,该 dockerfile 文件是一个针对 SQL Studio 镜像制作的思路的体现。

优化 dockerfile 文件

使用多阶段构建方式,将构建镜像的过程拆分为两个阶段:build 阶段、 environment 阶段,在 build 阶段中将 SQL Studio 官方提供的的程序包 COPY 到构建容器中并安装 unzip 程序将其解压,在 environment 阶段将 build 阶段解压的程序包文件拷入并运行,通过这样的方式将镜像使用的空间减小,因本人习惯于使用 CentOS 作为基础镜像,也可以在构建中使用其他更小的基础镜像来完成 SQL Studio 的镜像制作。

FROM centos:centos7.9.2009 as build

USER root

EXPOSE 18888

WORKDIR /apps/usr/sqlstudio/

COPY ./sqlstudio_linux_1.0.2.zip /apps/usr/sqlstudio/

COPY ./sqlstudio-start.sh /apps/usr/sqlstudio/

RUN set -x \

&& yum -y install unzip \

&& yum clean all \

&& unzip -q sqlstudio_linux_1.0.2.zip -d /apps/usr/sqlstudio/ \

&& cp /apps/usr/sqlstudio/sqlstudio-start.sh /apps/usr/sqlstudio/linux/ \

&& rm -rf sqlstudio_linux_1.0.2.zip \

&& rm -rf /tmp/* \

&& rm -rf /var/cache/yum/*

FROM centos:centos7.9.2009 as environment

USER root

EXPOSE 18888

ENV TZ Asia/Shanghai

WORKDIR /apps/usr/sqlstudio/

COPY --from=build /apps/usr/sqlstudio/linux /apps/usr/sqlstudio/

RUN set -x \

&& yum update -y \

&& yum -y install kde-l10n-Chinese telnet net-tools wget curl \

&& yum -y reinstall glibc-common \

&& yum clean all \

&& localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 \

&& rm -rf /tmp/* \

&& rm -rf /var/cache/yum/*

ENV JAVA_HOME /apps/usr/sqlstudio/jdk1.8.0_351

ENV JRE_HOME ${JAVA_HOME}/

ENV PATH JAVAHOME/bin:{JAVA_HOME}/bin:{PATH}

ENV CLASSPATH .:JAVAHOME/lib/dt.jar:{JAVA_HOME}/lib/dt.jar:{JAVA_HOME}/lib/tools.jar

ENV.UTF-8

ENV LANGUAGE=zh_CN:zh

ENV LC_ALL=zh_CN.UTF-8

CMD ["/bin/bash","sqlstudio-start.sh"]

分别使用优化前后的 dockerfile 文件构建镜像

dockerfile.old 文件对应优化前的 dockerfile 文件

dockerfile.new 文件对应优化后的 dockerfile 文件

docker build -f dockerfile.old -t sqlstudioold:1.0.2 .

docker build -f dockerfile.new -t sqlstudionew:1.0.2 .

dockerfile 文件优化前后对比

使用如下命令分别打印优化前后镜像的编译信息,查看镜像的占用空间

docker history <镜像ID或镜像名>

优化前

图2-1 优化前容器分层大小

注:图片中的优化前的镜像名和文档中镜像名存在不对应的问题,但是都是使用优化前的 dockerfile 文件构建的镜像不影响实际结果。

优化后

图2-2 优化前容器分层大小

对比前后的镜像变化,减少了两个 COPY 层,分别是拷入的 SQL Studio 官方提供的的程序包 275MB 和我们自行编写的快速启动脚本 535B ,通过分阶段构建的方式我们将镜像的大小从 1.2GB 缩小到了 923MB ,如果使用更小的基础镜像和其他的优化方式可以将镜像进一步压缩。

删除进行优化测试的俩个镜像

docker rmi sqlstudioold:1.0.2

docker rmi sqlstudionew:1.0.2

使用优化的后 dockerfile 文件制作镜像

docker build -f dockerfile -t sqlstudio:1.0.2 .

上传公共云镜像仓库

修改镜像 Tag 标签

docker tag sqlstudio:1.0.2 registry.cn-hangzhou.aliyuncs.com/sql_studio/sql-studio:1.0.2

上传 阿里云 镜像仓库

[root@vlnx211 ~]# docker push registry.cn-hangzhou.aliyuncs.com/sql_studio/sql-studio:1.0.2

The push refers to repository [registry.cn-hangzhou.aliyuncs.com/sql_studio/sql-studio]

4d13d7c57496: Pushed

6331bccae14c: Pushed

658f617325b7: Pushed

174f56854903: Pushed

1.0.2: digest: sha256:2095dff6a460ebb06b9e91e1deacbc06b5e9c8d8479c7dd7f71dae19034d3718 size: 1161


**部署镜像**

docker环境下部署

docker 部署命令

  


docker run -d --name=sqlstudio -p 18888:18888/tcp -v /apps/usr/sqlstudio/log/:/apps/usr/sqlstudio/linux/log/ -v /apps/usr/sqlstudio/data/:/apps/usr/sqlstudio/linux/data/ sqlstudio:1.0.2

命令解析

docker run

-d

#后台运行

--name=sqlstudio

#定义容器名称

-p 18888:18888/tcp

#定义容器端口

-v /apps/usr/sqlstudio/log/:/apps/usr/sqlstudio/linux/log/

#配置挂载卷,将sqlstudio产生的日志输出到本地磁盘

-v /apps/usr/sqlstudio/data/:/apps/usr/sqlstudio/linux/data/

#配置挂载卷,将sqlstudio产生的数据输出到本地磁盘

sqlstudio:1.0.2

#指定镜像

验证部署是否正常

查看 SQL Studio 的控制台日志是否启动成功

[root@vlnx207 linux]# docker logs sqlstudio

/bin/bash: warning: setlocale: LC_ALL: cannot change locale (zh_CN.UTF-8)

14:06:09.164 [main] INFO com.mc.MainApplication - Maicong SQLStudio Start...

. ____ _ __ _ _

/\ / _' __ _ () __ __ _ \ \ \ \

( ( )___ | '_ | '| | ' / _` | \ \ \ \

\/ __)| |)| | | | | || (_| | ) ) ) )

' |__| .__|| ||| |__, | / / / /

=========||==============|__/=///_/

:: Spring Boot :: (v2.6.7)

2023-01-18 14:06:09.614 [main] INFO com.mc.MainApplication - Starting MainApplication v1.0.0-release using Java 1.8.0_351 on d440cb2cad54 with PID 12 (/apps/usr/sqlstudio/linux/Maicong-SQLStudio-1.0.0-release.jar started by root in /apps/usr/sqlstudio/linux)

2023-01-18 14:06:09.616 [main] INFO com.mc.MainApplication - No active profile set, falling back to 1 default profile: "default"

2023-01-18 14:06:10.268 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[org.spring.mc.dao.master]' package. Please check your configuration.

2023-01-18 14:06:10.633 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 18888 (http)

2023-01-18 14:06:10.645 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-18888"]

2023-01-18 14:06:10.645 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]

2023-01-18 14:06:10.646 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.62]

2023-01-18 14:06:10.737 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext

2023-01-18 14:06:10.737 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1086 ms

2023-01-18 14:06:11.424 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping - Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]

2023-01-18 14:06:11.529 [main] INFO o.s.b.a.web.servlet.WelcomePageHandlerMapping - Adding welcome page: ServletContext resource [/index.html]

2023-01-18 14:06:11.670 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-18888"]

2023-01-18 14:06:11.726 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 18888 (http) with context path ''

2023-01-18 14:06:11.727 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Context refreshed

2023-01-18 14:06:11.738 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper - Found 1 custom documentation plugin(s)

2023-01-18 14:06:11.760 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner - Scanning for api listing references

2023-01-18 14:06:11.980 [main] INFO com.mc.MainApplication - Started MainApplication in 2.695 seconds (JVM running for 3.299)

2023-01-18 14:06:11.982 [main] INFO com.mc.spring.lifecycle.AppLifecycleListener - App Lifecycle -> start

2023-01-18 14:06:11.983 [main] INFO com.mc.MainApplication - Maicong SQLStudio started successfully.

2023-01-18 15:16:02.870 [http-nio-18888-exec-2] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'

2023-01-18 15:16:02.872 [http-nio-18888-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'

2023-01-18 15:16:02.886 [http-nio-18888-exec-2] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 14 ms

2023-01-18 15:16:03.233 [http-nio-18888-exec-2] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited

2023-01-18 15:16:06.241 [http-nio-18888-exec-8] INFO com.mc.controller.PublicUserController - User IP address is:11.0.1.1

访问 SQL Studio 的 WEB 界面,查看是否可以正常访问

SQL Studio 的 WEB 界面如下图

图2-3 SQL Studio 的 WEB 界面

kubernetes环境下部署

前期准备

在镜像制作服务器上修改镜像 Tag 标签

docker tag sqlstudio:1.0.2 harbor.sharks.top/sqlstudio/sqlstudio:1.0.2

将镜像上传 harbor 镜像存储

docker push harbor.sharks.top/sqlstudio/sqlstudio:1.0.2

在 NFS 持久化存储服务器创建 SQL Studio 持久化文件目录

mkdir -m 755 -p /apps/usr/nfs_data/ruoyi-cloud-sql-studio/{data,logs}

在 kubernetes master 节点创建 SQL Studio 的 YAML 资源文件存储目录

mkdir -m 755 -p /root/RuoYi-Cloud/sql-studio/

进入目录

cd /root/RuoYi-Cloud/sql-studio/

创建资源定义文件

创建 SQL Studio 的存储资源定义 YAML 文件,该章节采用 NFS 存储挂载到 PV , PVC 挂载到容器的方式进行,也可以采用其他的存储资源。

vim ruoyi-cloud-sql-studio-storage.yaml

文件内如如下

#SQL Studio 的日志存储 PV


apiVersion: v1

kind: PersistentVolume

metadata:

name: ruoyi-cloud-sql-studio-logs-pv

labels:

app: sql-studio

spec:

capacity:

storage: 5Gi

accessModes:

  • ReadWriteOnce

mountOptions:

  • hard

  • nfsvers=4.1

nfs:

server: 11.0.1.207

path: /apps/usr/nfs_data/ruoyi-cloud-sql-studio/logs/

persistentVolumeReclaimPolicy: Retain

#SQL Studio 的数据存储 PV


apiVersion: v1

kind: PersistentVolume

metadata:

name: ruoyi-cloud-sql-studio-data-pv

labels:

app: sql-studio

spec:

capacity:

storage: 5Gi

accessModes:

  • ReadWriteOnce

mountOptions:

  • hard

  • nfsvers=4.1

nfs:

server: 11.0.1.207

path: /apps/usr/nfs_data/ruoyi-cloud-sql-studio/data/

persistentVolumeReclaimPolicy: Retain

#SQL Studio 的日志存储 PVC


kind: PersistentVolumeClaim

apiVersion: v1

metadata:

name: ruoyi-cloud-sql-studio-logs-pvc

namespace: ruoyi-cloud

spec:

resources:

requests:

storage: 5Gi

accessModes:

  • ReadWriteOnce

selector:

matchLabels:

app: sql-studio

#SQL Studio 的数据存储 PVC


kind: PersistentVolumeClaim

apiVersion: v1

metadata:

name: ruoyi-cloud-sql-studio-data-pvc

namespace: ruoyi-cloud

spec:

resources:

requests:

storage: 5Gi

accessModes:

  • ReadWriteOnce

selector:

matchLabels:

app: sql-studio

创建 SQL Studio 的 ConfigMap (配置字典)资源定义 YAML 文件

vim ruoyi-cloud-sql-studio-ConfigMap.yaml

文件内容如下


apiVersion: v1

kind: ConfigMap

metadata:

labels:

app: sql-studio

namespace: ruoyi-cloud

name: sql-studio-maicong.yaml

namespace: ruoyi-cloud

data:

maicong.yaml: >

======================== MaiCongSoftWare Configuration =========================

NOTE: MAICONGSOFTWARE comes with reasonable defaults for most settings.

Before you set out to tweak and tune the configuration, make sure you

understand what are you trying to accomplish and the consequences.

The primary way of configuring a node is via this file. This template lists

the most important settings you may want to configure for a production cluster.

Please consult the documentation for further information on configuration options:

www.maicongs.com/#/listdocu

-------------------------------------- Network --------------------------------------

set the server run port for backend and frontend, this is backend port

must

server.port: 18888

----------------------------------------- DB configuration ----------------------------------------

master.datasource.initial-size: 10

master.datasource.max-active: 100

master.datasource.min-idle: 10

set the sqlite local path (have default if not set)

#master.datasource.url: jdbc:sqlite:xxx/sqlite.db

master.datasource.url:

---------------------------------------- LOG ----------------------------------------

log level, you can set info, error, warn, debug

logging.level.com.mc.dao: info

--------------------------------------- MYBATIS ------------------------------------

mybatis.check-config-location: true

mybatis.config-location: classpath:mybatis/mybatis-config.xml

mybatis.mapper-locations: classpath:mybatis/mapper/*.xml

mybatis.type-aliases-package: com.mc.entity

-------------------------------------- Network --------------------------------------

server.tomcat.accept-count: 800

server.tomcat.max-connections: 20000

server.tomcat.max-max-threads: 1000

server.tomcat.uri-encoding: UTF-8

-------------------------------------- SPRING ---------------------------------------

spring.http.enncoding.charset: UTF-8

spring.http.enncoding.enabled: true

spring.http.enncoding.force: true

spring.messages.encoding: UTF-8

spring.mvc.async.request-timeout: 180000

spring.mvc.pathmatch.matching-strategy: ant_path_matcher

spring.messages.basename: i18n/messages

创建 SQL Studio 的部署资源定义 YAML 文件

vim ruoyi-cloud-sql-studio-Deployment-Service.yaml

文件内容如下


apiVersion: apps/v1

kind: Deployment

metadata:

annotations:

k8s.kuboard.cn/displayName: SQL Studio

labels:

k8s.kuboard.cn/layer: monitor

k8s.kuboard.cn/name: sql-studio

name: sql-studio

namespace: ruoyi-cloud

spec:

progressDeadlineSeconds: 600

replicas: 1

revisionHistoryLimit: 10

selector:

matchLabels:

k8s.kuboard.cn/layer: monitor

k8s.kuboard.cn/name: sql-studio

strategy:

rollingUpdate:

maxSurge: 25%

maxUnavailable: 25%

type: RollingUpdate

template:

metadata:

annotations:

kubectl.kubernetes.io/restartedAt: '2023-01-18T22:44:29+08:00'

creationTimestamp: null

labels:

k8s.kuboard.cn/layer: monitor

k8s.kuboard.cn/name: sql-studio

spec:

containers:

  • image: 'harbor.sharks.top/sqlstudio/sqlstudio:1.0.2'

imagePullPolicy: Always

lifecycle:

preStop:

exec:

command:

  • /bin/bash

  • /apps/usr/sqlstudio/linux/

  • stop

livenessProbe:

failureThreshold: 3

httpGet:

path: /

port: 18888

scheme: HTTP

periodSeconds: 10

successThreshold: 1

timeoutSeconds: 1

name: sql-studio

ports:

  • containerPort: 18888

name: server

protocol: TCP

readinessProbe:

failureThreshold: 3

httpGet:

path: /

port: 18888

scheme: HTTP

periodSeconds: 10

successThreshold: 1

timeoutSeconds: 1

resources:

limits:

memory: 4000Mi

requests:

memory: 2000Mi

startupProbe:

failureThreshold: 3

httpGet:

path: /

port: 18888

scheme: HTTP

periodSeconds: 10

successThreshold: 1

timeoutSeconds: 1

terminationMessagePath: /dev/termination-log

terminationMessagePolicy: File

volumeMounts:

  • mountPath: /apps/usr/sqlstudio/linux/data/

name: data

  • mountPath: /apps/usr/sqlstudio/linux/log/

name: logs

  • mountPath: /etc/localtime

name: timezone

readOnly: true

  • mountPath: /apps/usr/sqlstudio/linux/config/maicong.yaml

name: maicong-yaml

readOnly: true

subPath: maicong.yaml

dnsPolicy: ClusterFirst

imagePullSecrets:

  • name: sharks-harbor

restartPolicy: Always

schedulerName: default-scheduler

securityContext: {}

terminationGracePeriodSeconds: 30

volumes:

  • name: logs

persistentVolumeClaim:

claimName: ruoyi-cloud-sql-studio-logs-pvc

  • name: data

persistentVolumeClaim:

claimName: ruoyi-cloud-sql-studio-data-pvc

  • hostPath:

path: /etc/localtime

type: File

name: timezone

  • configMap:

defaultMode: 420

items:

  • key: maicong.yaml

path: maicong.yaml

name: sql-studio-maicong.yaml

name: maicong-yaml


apiVersion: v1

kind: Service

metadata:

annotations: {}

labels:

k8s.kuboard.cn/layer: monitor

k8s.kuboard.cn/name: sql-studio

name: sql-studio

namespace: ruoyi-cloud

spec:

clusterIP:

externalTrafficPolicy: Cluster

internalTrafficPolicy: Cluster

ipFamilies:

  • IPv4

ipFamilyPolicy: SingleStack

ports:

  • name: server

nodePort: 32888

port: 18888

protocol: TCP

targetPort: 18888

selector:

k8s.kuboard.cn/layer: monitor

k8s.kuboard.cn/name: sql-studio

sessionAffinity: None

type: NodePort

导入资源定义文件

导入存储资源定义 YAML 文件

kubectl apply -f ruoyi-cloud-sql-studio-storage.yaml

输出如下

[root@vlnx201 sql-studio]# kubectl create -f ruoyi-cloud-sql-studio-storage.yaml

persistentvolume/ruoyi-cloud-sql-studio-logs-pv created

persistentvolume/ruoyi-cloud-sql-studio-data-pv created

persistentvolumeclaim/ruoyi-cloud-sql-studio-logs-pvc created

persistentvolumeclaim/ruoyi-cloud-sql-studio-data-pvc created

导入配置字典资源定义 YAML 文件

kubectl apply -f ruoyi-cloud-sql-studio-ConfigMap.yaml

输出如下

[root@vlnx201 sql-studio]# kubectl apply -f ruoyi-cloud-sql-studio-ConfigMap.yaml

configmap/sql-studio-maicong.yaml created

导入部署资源定义 YAML 文件

kubectl apply -f ruoyi-cloud-sql-studio-Deployment-Service.yaml

输出如下

[root@vlnx201 sql-studio]# kubectl apply -f ruoyi-cloud-sql-studio-Deployment-Service.yaml

deployment.apps/sql-studio created

service/sql-studio created

功能验证

请参考通过 docker 部署 SQL Studio 章节,该部分不在赘述

SQL Studio平台的使用

使用如下地址访问 SQL Studio:http://11.0.1.207:18888/#/login

SQL Studio 的 WEB 登录界面如下图

图3-1 SQL Studio 的 WEB 登录界面

本次 SQL Studio 设置的账号密码如下

注:首次登陆时,填写的账号密码即为之后使用中的账号密码

SQL Studio 的 WEB 工作界面如下图

图3-3 SQL Studio 的 WEB 工作界面

SQL Studio 用户管理

图3-4 SQL Studio 用户管理

测试用户信息如下,请根据实际情况进行配置

图3-5 测试用户信息

SQL Studio 添加数据源

图3-6 SQL Studio 添加数据源

SQL Studio 配置数据源

图3-7 SQL Studio 配置数据源

测试数据源信息如下,请根据实际情况进行配置

图3-8 测试数据源信息

SQL Studio 简单操作

新建查询

图3-9 新建查询

导出数据

图3-10 导出数据

举报/反馈