【REST2SQL】15银河麒麟系统下达梦数据库部署REST2SQL
【REST2SQL】01RDB关系型数据库REST初设计
【REST2SQL】02 GO连接Oracle数据库
【REST2SQL】03 GO读取JSON文件
【REST2SQL】04 REST2SQL第一版Oracle版实现
【REST2SQL】05 GO 操作 达梦 数据库
【REST2SQL】06 GO 跨包接口重构代码
【REST2SQL】07 GO 操作 Mysql 数据库
【REST2SQL】08 日志重构增加输出到文件log.txt
【REST2SQL】09 给Go的可执行文件exe加图标和版本信息等
【REST2SQL】10 REST2SQL操作指南
【REST2SQL】11 基于jwt-go生成token与验证
【REST2SQL】12 REST2SQL增加Token生成和验证
【REST2SQL】13 用户角色功能权限设计
【REST2SQL】14 基于角色的数据权限设计与实现
0 部署环境
0.1 硬件DELL笔记本电脑
设备规格 Inspiron 7590
处理器 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz 2.59 GHz
机带 RAM 32.0 GB (31.8 GB 可用)
系统类型 64 位操作系统, 基于 x64 的处理器
Windows 规格
版本 Windows 10 家庭中文版
版本号 22H2
安装日期 2021-04-22
操作系统内部版本 19045.5487
体验 Windows Feature Experience Pack 1000.19061.1000.0
0.2 VMware 虚拟机
虚拟机的下载、安装、使用略去5217字。
0.3 银河麒麟V10桌面操作系统
银河麒麟V10操作系统需要申请才能下载,分不同芯片组有很多版本,嫌申请麻烦可以下载社区版 https://www.openkylin.top/downloads/ 社区版有很多镜像下载站点。
安装还是挺简单快捷的。
关于银河麒麟操作系统的使用略去5217字
0.4 达梦数据库V8
达梦数据库的下载也需要申请,不同芯片组、操作系统安装包不同。 https://www.dameng.com/DM8.html
关于达梦数据库的安装、使用略去5217字。
达梦数据库安装后,没有自动加到银河麒麟操作系统的开始菜单里,主要自己手动添加,创建【达梦.Desktop】的文件如下:
[Desktop Entry]
Encoding=UTF-8
Name=达梦管理
Exec=sh /home/blma/dmdbms/tool/manager
Icon=/home/dxsoft/Downloads/smartgit/bin/test-64.png
Info="Spark"
Terminal=false
Type=Application
StartupNotify=true
此文件放到桌面( 桌面目录通常是/home/用户名/桌面 )就是桌面快捷方式,放到开始菜单目录( /usr/share/applications )就是开始菜单项。
0.5 宿主机的目录共享给虚拟机
在虚拟机设置-选项-共享文件夹启用并设置即可。
Linux 虚拟机:默认情况下,共享文件夹会挂载到/mnt/hgfs目录下。若该目录为空,可在终端中运行命令
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
,之后就能在/mnt/hgfs目录中找到共享文件夹并操作文件。
0.6 虚拟机网络适配
在虚拟机设置-硬件-网络适配器里设置网络即可:一般选桥接模式或NAT模式。
桥接模式:和宿主机在同一网段分配虚拟机一个IP地址
NAT模式:和宿主机在不同网段分配一个IP地址
注意如何想外部访问虚拟机需要关闭麒麟操作系统的防火墙。
查询虚拟机的IP地址可以在终端输入 ip addr
1 编译REST2SQL
编译REST2SQL在银河麒麟操作系统下的可执行程序。我用的开发及编译工具为 LiteIDE。可以在windows 10下交叉编译银河麒麟系统的可执行代码。
1.1 编译环境设置
LiteIDE的菜单【工具】-【选择环境】-Cross-linux64
# cross-compiler linux amd64
GOROOT=D:\NewThing\Go
#GOBIN=
GOARCH=amd64
GOOS=linux
CGO_ENABLED=0
PATH=c:\mingw64\bin;%GOROOT%\bin;%PATH%
LITEIDE_GDB=gdb
LITEIDE_MAKE=mingw32-make
LITEIDE_TERM=%COMSPEC%
LITEIDE_TERMARGS=
LITEIDE_EXEC=%COMSPEC%
LITEIDE_EXECOPT=/C
主要修改go语言的安装跟目录 GOROOT 和 路径 PATH 其它的不用改。
1.2 编译
LiteIDE的菜单【编辑】-【Build】即可。编辑输出
D:/NewThing/Go/bin/go.exe build [D:/NewThing/GoGoGo/src/rest2sql]
成功: 进程退出代码 0.
编译成功后,在系统目录下生成一个 rest2sql的文件就是银河麒麟操作系统下的可执行文件。
2 复制
- 复制编译后的可执行文件rest2sql和配置文件config.json到宿主机的共享目录。
- 从宿主机复制到银河麒麟帐户的一个工作目录
3 启动REST2SQL服务
3.1 配置config.json文件
主要配置 hostPort 、connString、AccessControlAllowOrigin、openToken四项。
hostPort :REST服务的地址和端口
connString :达梦数据库的连接字符串
AccessControlAllowOrigin :前端网页的入口地址和端口
openToken :REST服务是否需要Token,测试后台服务时设置为 false
网页访问时设置为 true
{
"hostPort":"192.168.241.129:5217",
"_hostPort_amis":"127.0.0.1:5217",
"_hostPort_Json2Web":"192.168.1.108:5217",
"connString":"dm://PTPS:dameng5217@127.0.0.1:5236/PTPS",
"_oracle":"oracle://blma:5217@127.0.0.1:1521/CQYH",
"_dm":"dm://BLMA:dameng5217@127.0.0.1:5236/BLMA",
"_mysql":"mysql://blma:5217@(127.0.0.1:3306)/blma",
"_mssql":"mssql://",
"_postgresql":"postgresql://",
"REST":"GET,POST,PUT,DELETE,OPTIONS",
"_REST":"GET,POST,PUT,DELETE",
"SQL":"SELECT,INSERT,UPDATE,DELETE",
"_SQL":"SELECT,INSERT,UPDATE,DELETE",
"AccessControlAllowOrigin":"http://192.168.241.129:3000",
"_AccessControlAllowOrigin_vscode":"http://127.0.0.1:5500",
"_AccessControlAllowOrigin_amis":"http://localhost:81",
"_AccessControlAllowOrigin_Json2web":"http://192.168.1.116:3000",
"openToken":false,
"_openToken":true
}
3.2 启动REST2SQL服务
双击 rest2sql 文件,【在终端运行】
服务启动成功截图如下:
4 调用REST2SQL服务
- 在浏览器输入如下地址:
http://192.168.241.129:5217/rest/pt_rules
- 浏览器返回数据:
{
"data": {
"rows": [
{
"F_DWEI": "方",
"S_KEY": "C0010",
"S_NAME": "空罐上限",
"S_NOTE": "1000",
"S_VALUE": "1000"
},
{
"F_DWEI": "吨",
"S_KEY": "C0020",
"S_NAME": "管输需求上限",
"S_NOTE": "7000",
"S_VALUE": "70000"
},
{
"F_DWEI": "吨",
"S_KEY": "C0030",
"S_NAME": "管输需求下限",
"S_NOTE": "20000",
"S_VALUE": "20000"
},
{
"F_DWEI": "方",
"S_KEY": "C0040",
"S_NAME": "需求匹配误差",
"S_NOTE": "5000",
"S_VALUE": "5000"
},
{
"F_DWEI": "方",
"S_KEY": "C0050",
"S_NAME": "企业匹配误差",
"S_NOTE": "10000",
"S_VALUE": "10000"
},
{
"F_DWEI": "方",
"S_KEY": "C0060",
"S_NAME": "罐容下限",
"S_NOTE": "可用罐容大于下限才进油(极限库容-安全库容)",
"S_VALUE": "4000"
}
]
},
"msg": "",
"status": 0,
"total": 6
}
- 终端反馈信息:
本文完