国产数据库南大通用gbase8s安装及使用

admin 2023年2月18日20:57:22评论281 views字数 3824阅读12分44秒阅读模式

安装中涉及到的软件、安装包,都可以关注公众账号。发送消息gbase8s获取

一、安装

通过docker安装、docker命令如下:

docker search gbase8sdocker pull liaosnet/gbase8s:latestdocker run -itd --name=gbase8s -p 9088:9088 liaosnet/gbase8s:latest


二、客户端工具安装配置

下载客户端工具Gbase Data Studio工具、msi文件直接安装

国产数据库南大通用gbase8s安装及使用

设置好主机、端口、服务实例名、数据库、账号、密码就可以连接操作了

三、ODBC配置

3.1 开发机和数据分离

开发人员电脑和Gbase数据库不在一台电脑上,开发人员电脑要配置ODBC

国产数据库南大通用gbase8s安装及使用

假设开发人员电脑是windows操作:

  • 下载Gbase ODBC Driver的windows版本

  • 配置ODBC数据源

  • 代码测试


解压缩后,执行批处理程序,安装Gbase8s ODBC的驱动,接下来就配置windows odbc数据源

win+s 打开查找窗口,输入odbc打开odbc数据源

国产数据库南大通用gbase8s安装及使用

配置或增加数据源

国产数据库南大通用gbase8s安装及使用

国产数据库南大通用gbase8s安装及使用

代码测试

package main
import ( "database/sql" "fmt"
_ "github.com/alexbrainman/odbc")
func main() { fmt.Printf("GO ODBC测试程序开始运行.nn")
// odbcgbase ODBC数据源名称 UID账号 PWD密码 db, err := sql.Open("odbc", "DSN=odbcgbase;UID=gbasedbt;PWD=GBase123") if err != nil { panic(err) } defer db.Close()
rows, err := db.Query("SELECT tabid,tabname FROM systables where tabid < 10") checkErr(err)
for rows.Next() { var tabid int var tabname string err = rows.Scan(&tabid, &tabname) checkErr(err) fmt.Printf("%dt%sn", tabid, tabname) } rows.Close()
fmt.Printf("nGO ODBC测试程序结束运行.n")}
func checkErr(err error) { if err != nil { panic(err) }}


输出结果如下:

PS D:gosrcbackupgbasetest> go run .GO ODBC测试程序开始运行.
4 api.SQLSMALLINT12 api.SQLSMALLINT1 systables2 syscolumns3 sysindices4 systabauth5 syscolauth6 sysviews7 sysusers8 sysdepend9 syssynonyms
GO ODBC测试程序结束运行.


3.2 项目和数据库分离

项目开发完成,一般web项目和数据库不是在一台机器,简单架构如下:

国产数据库南大通用gbase8s安装及使用

在项目的web服务器上安装Gbase ODBC驱动,web服务器一般都是linux操作系统

  • linux安装odbc驱动

  • 下载 Gbase ODBC Driver 的linux版本

  • 配置ODBC数据源

3.2.1 linux安装unixodbc

创建组、用户及用户目录

groupadd gbasedbtuseradd -g gbasedbt -d /home/gbasedbt -s /bin/bash -m gbasedbt

安装配置

cd /home/gbasedbt
# 下载linux下驱动wget https://gbasedbt.com/dl/odbc/GBase8s_3.0-Linux64-ODBC-Driver.tar.gz
# 解压缩并修改目录名称tar -zxvf GBase8s_3.0-Linux64-ODBC-Driver.tar.gzmv gbase8s-odbc-driver gbase8s
# 进入etc配置目录cd /home/gbasedbt/gbase8s/etc
# 实例服务名gbase01的sqlhost配置vi sqlhost.gbase01

sqlhost.gbase01内容如下:

gbase01         onsoctcp        10.80.31.151        9088

gbase01服务实例名 onsoctcp通信协议  主机ip地址                        主机端口

3.2.3 配置Gbase ODBC配置

创建odbc.ini文件

# 在用户目录下cd /home/gbasedbt
# 创建odbc.ini文件vi odbc.ini

odbc.ini文件内容如下

;---------------------------------------------------------------------------; GBase ODBC Sample File;; File:         odbc.ini;;---------------------------------------------------------------------------[ODBC Data Sources]odbcgbase=GBase ODBC DRIVER                              # 数据源名称、自定义
[odbcgbase] # 数据源配置Driver=/home/gbasedbt/gbase8s/lib/cli/iclis09b.so # 驱动地址Description=GBase ODBC DRIVER # 描述Database=movies # 数据库LogonID=gbasedbt # 登录账号pwd=GBase123 # 登录密码Servername=gbase01 # 实例名称CursorBehavior=0 CLIENT_LOCALE=zh_CN.utf8 # 客户端编码DB_LOCALE=zh_CN.utf8 # 数据库编码TRANSLATIONDLL=/home/gbasedbt/gbase8s/lib/esql/igo4a304.so
[ODBC]UNICODE=UCS-2 # 注意:必须使用UNICODE编码 # Trace=0TraceFile=/tmp/odbctrace.outInstallDir=/home/gbasedbt/gbase8s #安装路径TRACEDLL=idmrs09a.so

环境变量配置

vi /etc/profile

尾部增加如下内容:

export GBASEDBTDIR=/home/gbasedbt/gbase8sexport PATH=$GBASEDBTDIR/bin:$PATHexport LD_LIBRARY_PATH=$GBASEDBTDIR/lib:$GBASEDBTDIR/lib/cli:$GBASEDBTDIR/lib/esql:$LD_LIBRARY_PATHexport GBASEDBTSQLHOSTS=$GBASEDBTDIR/etc/sqlhosts.gbase01export ODBCINI=/home/gbasedbt/odbc.ini

环境变量启作用

source /etc/profile

3.2.4 测试使用

通过isql测试使用

# odbcbase 数据源名称odbc.iniisql -v odbcgbase
# 查询服务名称select dbservername::varchar(40) from dual;# 查询所有表select tabname from systables where tabid >= 100 and tabtype = 'T';

效果如下图:

国产数据库南大通用gbase8s安装及使用

3.2.5 代码示例

web服务器 测试项目代码如下

package main
import ( "database/sql" "log" "net/http"
_ "github.com/alexbrainman/odbc" "github.com/gin-gonic/gin")
type user struct { Id int Name string Age int}
func main() { db, err := sql.Open("odbc", "DSN=odbcgbase;UID=gbasedbt;PWD=GBase123") if err != nil { log.Fatal(err) }
r := gin.Default()
serve := http.Server{ Addr: ":1234", Handler: r, }
go serve.ListenAndServe()
r.GET("/", func(ctx *gin.Context) { rows, err := db.Query("SELECT * FROM users where id >1") if err != nil { log.Panic("异常", err) } users := make([]user, 0) for rows.Next() { u := user{} rows.Scan(&u.Id, &u.Name, &u.Age) users = append(users, u) } rows.Close() ctx.JSON(http.StatusOK, gin.H{"users": users}) })
select {}
}

启动服务

go run .

本地通过访问http://10.80.31.153:1234访问,请求url后返回查询数据

国产数据库南大通用gbase8s安装及使用


数据安全领域越来越多用到国产数据库,文档和sdk提供不足。今天测试安装gbase8s。写一篇安装教程留作记号。

原文始发于微信公众号(数据安全治理技术):国产数据库南大通用gbase8s安装及使用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月18日20:57:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   国产数据库南大通用gbase8s安装及使用https://cn-sec.com/archives/1560142.html

发表评论

匿名网友 填写信息