# change-db-password **Repository Path**: distant3/change-db-password ## Basic Information - **Project Name**: change-db-password - **Description**: 实现数据库密码修改功能 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-12-05 - **Last Updated**: 2022-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 需求 开发一个小系统 1. 实现数据库密码修改功能; 2. 支持Oracle及MySQL; 3. 具备操作日志记录; 4. 开发语言不限。 # 设计思路 基于开源框架 [Gin-vue-admin](https://github.com/flipped-aurora/gin-vue-admin) 的插件模式开发,前后端分离,开发语言为 golang 1.17、node 16,持久化采用 mysql。 > Gin-vue-admin是一个基于 vue 和 gin(golang) 开发的全栈前后端分离的开发基础平台,集成jwt鉴权,动态路由,动态菜单,casbin鉴权,表单生成器,代码生成器等功能,提供多种示例文件,让您把更多时间专注在业务开发上。 **功能:** - 数据库列表,可以添加 mysql / oracel 类型数据库 - 修改数据库密码的功能 - 需要提供数据库的旧密码 **表结构:** db_databases | 字段 | 类型 | 说明 | | ---- | ---- | ---- | | type | varchar | 数据库类型(oracle、mysql) | | host | varchar | 连接地址 | | port | int | 端口 | | user_name | varchar | 登陆用户名 | | password | varchar | 密码 | | instance_name | varchar | 实例名称 | # 代码结构 ``` ├── server ├── Dockerfile ├── api (api层) │ └── v1 (v1版本接口) ├── config (配置包) ├── plugin ★(插件) └── db ★(实现修改数据库密码) ├── core (核心文件) ├── docs (swagger文档目录) ├── global (全局对象) ├── initialize (初始化) │ └── internal (初始化内部函数) ├── middleware (中间件层) ├── model (模型层) │ ├── request (入参结构体) │ └── response (出参结构体) ├── packfile (静态文件打包) ├── router (路由层) ├── service (service层) ├── source (source层) └── utils (工具包) ├── timer (定时器接口封装) └── upload (oss接口封装) ├── web ├── Dockerfile ├── index.html -- 主页面 ├── limit.js -- 助手代码 ├── package.json -- 包管理器代码 ├── src -- 源代码 │ ├── api -- ★ api 组(对后端api的调用) │ ├── App.vue -- 主页面 │ ├── assets -- 静态资源 │ ├── components -- 全局组件 │ ├── core -- gva 组件包 │ │ ├── config.js -- gva网站配置文件 │ │ ├── gin-vue-admin.js -- 注册欢迎文件 │ │ └── global.js -- 统一导入文件 │ ├── directive -- v-auth 注册文件 │ ├── main.js -- 主文件 │ ├── permission.js -- 路由中间件 │ ├── pinia -- pinia 状态管理器,取代vuex │ │ ├── index.js -- 入口文件 │ │ └── modules -- modules │ │ ├── dictionary.js │ │ ├── router.js │ │ └── user.js │ ├── router -- 路由声明文件 │ │ └── index.js │ ├── style -- 全局样式 │ │ ├── base.scss │ │ ├── basics.scss │ │ ├── element_visiable.scss -- 此处可以全局覆盖 element-plus 样式 │ │ ├── iconfont.css -- 顶部几个icon的样式文件 │ │ ├── main.scss │ │ ├── mobile.scss │ │ └── newLogin.scss │ ├── utils -- 方法包库 │ │ ├── asyncRouter.js -- 动态路由相关 │ │ ├── btnAuth.js -- 动态权限按钮相关 │ │ ├── bus.js -- 全局mitt声明文件 │ │ ├── date.js -- 日期相关 │ │ ├── dictionary.js -- 获取字典方法 │ │ ├── downloadImg.js -- 下载图片方法 │ │ ├── format.js -- 格式整理相关 │ │ ├── image.js -- 图片相关方法 │ │ ├── page.js -- 设置页面标题 │ │ ├── request.js -- 请求 │ │ └── stringFun.js -- 字符串文件 | ├── view -- 主要view代码 | | ├── custom -- ★ 功能实现 | | ├── about -- 关于我们 | | ├── dashboard -- 面板 | | ├── error -- 错误 | | ├── layout -- layout约束页面 | | | ├── aside | | | ├── bottomInfo -- bottomInfo | | | ├── screenfull -- 全屏设置 | | | ├── setting -- 系统设置 | | | └── index.vue -- base 约束 | | ├── login --登录 | | ├── person --个人中心 | | ├── superAdmin -- 超级管理员操作 | | ├── system -- 系统检测页面 | | ├── systemTools -- 系统配置相关页面 | | └── routerHolder.vue -- page 入口页面 ├── vite.config.js -- vite 配置文件 └── yarn.lock ``` # 调试 ## server项目 ``` ## 使用 VsCode 等编辑工具,进入server文件夹 cd server ## 使用 go mod 并安装go依赖包 go generate ## 建议使用 vscode 进行调试, lauch.json 已经写好 ``` ## web项目 ``` # 进入web文件夹 cd web # 安装依赖 npm install # 启动web项目 npm run serve ``` # 部署 ## 使用 docker 模式部署 ``` yaml ## docker & docker-compose install curl -o- https://smartidedl.blob.core.chinacloudapi.cn/docker/linux/docker-install.sh | bash ## server image cd server docker build -f ./Dockerfile -t "db-system-api:latest" . cd - ## web image cd web docker build -f ./Dockerfile -t "db-system-web:latest" . cd - ## run docker-compose -f docker-compose.yaml up ``` ## 使用 k8s 模式部署 ``` kubectl apply -f ./deployment/k8s/ ```