安装中涉及到的软件、安装包,都可以关注公众账号。发送消息gbase8s获取
一、安装
通过docker安装、docker命令如下:
docker search gbase8s
docker pull liaosnet/gbase8s:latest
docker run -itd --name=gbase8s -p 9088:9088 liaosnet/gbase8s:latest
二、客户端工具安装配置
下载客户端工具Gbase Data Studio工具、msi文件直接安装
设置好主机、端口、服务实例名、数据库、账号、密码就可以连接操作了
三、ODBC配置
3.1 开发机和数据分离
开发人员电脑和Gbase数据库不在一台电脑上,开发人员电脑要配置ODBC
假设开发人员电脑是windows操作:
-
下载Gbase ODBC Driver的windows版本
-
配置ODBC数据源
-
代码测试
解压缩后,执行批处理程序,安装Gbase8s ODBC的驱动,接下来就配置windows odbc数据源
win+s 打开查找窗口,输入odbc打开odbc数据源
配置或增加数据源
代码测试
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.SQLSMALLINT
12 api.SQLSMALLINT
1 systables
2 syscolumns
3 sysindices
4 systabauth
5 syscolauth
6 sysviews
7 sysusers
8 sysdepend
9 syssynonyms
GO ODBC测试程序结束运行.
3.2 项目和数据库分离
项目开发完成,一般web项目和数据库不是在一台机器,简单架构如下:
在项目的web服务器上安装Gbase ODBC驱动,web服务器一般都是linux操作系统
-
linux安装odbc驱动
-
下载 Gbase ODBC Driver 的linux版本
-
配置ODBC数据源
3.2.1 linux安装unixodbc
创建组、用户及用户目录
groupadd gbasedbt
useradd -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.gz
mv 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=0
TraceFile=/tmp/odbctrace.out
InstallDir=/home/gbasedbt/gbase8s #安装路径
TRACEDLL=idmrs09a.so
环境变量配置
vi /etc/profile
尾部增加如下内容:
export GBASEDBTDIR=/home/gbasedbt/gbase8s
export PATH=$GBASEDBTDIR/bin:$PATH
export LD_LIBRARY_PATH=$GBASEDBTDIR/lib:$GBASEDBTDIR/lib/cli:$GBASEDBTDIR/lib/esql:$LD_LIBRARY_PATH
export GBASEDBTSQLHOSTS=$GBASEDBTDIR/etc/sqlhosts.gbase01
export ODBCINI=/home/gbasedbt/odbc.ini
环境变量启作用
source /etc/profile
3.2.4 测试使用
通过isql测试使用
# odbcbase 数据源名称odbc.ini
isql -v odbcgbase
# 查询服务名称
select dbservername::varchar(40) from dual;
# 查询所有表
select tabname from systables where tabid >= 100 and tabtype = 'T';
效果如下图:
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后返回查询数据
数据安全领域越来越多用到国产数据库,文档和sdk提供不足。今天测试安装gbase8s。写一篇安装教程留作记号。
原文始发于微信公众号(数据安全治理技术):国产数据库南大通用gbase8s安装及使用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论