目录
GBase 8c--多模多态分布式数据库
GBase 8c是南大通用自主研发的一款多模多态的第三代智能分布式数据库,通过智能优化,智能运维,智能安全实现DB智能化,使GBase8c具备高性能、高可用、弹性伸缩、高安全性等智能特性。支持行存、列存、内存等多种存储模式,单机、主备式、分布式等多种部署形态和ORACLE、PG、MYSQL多种兼容模式,可以部署在物理机、虚拟机、容器、私有云和公有云,为关键行业核心系统、互联网业务系统和政企业务系统提供安全、稳定、可靠的数据存储和管理服务,满足各种应用场景。
gbase8c默认值
默认数据库名:postgres
默认端口:5432
默认用户名:gbase8c
默认密码:GBase123
gbase8c安装目录结构
gbase8c数据库基本操作
启动/关闭gbase8c
一般格式:gs_ctl二进制文件路径 start -D 数据库结点路径
# 启动数据库服务: start -D 数据库结点路径(一般都在data下)
/home/gbase/gbase8c_pkg/bin/gs_ctl start -D /home/gbase/gbase8c_pkg/data/single_node
# 停止数据库服务
/home/gbase/gbase8c_pkg/bin/gs_ctl stop -D /home/gbase/gbase8c_pkg/data/single_node
一些数据库命令行常用操作
进入/退出数据库命令行
# 进入数据库命令行
gsql -d 数据库名 -p 端口号
# 查询参数failed_login_attempts(限制用户名密码尝试次数,若超出,则锁定该用户名账户)
show failed_login_attempts;
# 退出数据库命令行
\q
gbase8c设置用户名密码尝试次数不受限制
# 设置用户名密码尝试次数不受限制
gs_guc reload -D /home/gbase/gbase8c_pkg/data/single_node -c "failed_login_attempts=0";
gbase8c配置ipv6可访问
对于pg_hba.conf文件,如果主机需要远程连接数据库,必须在数据库系统的配置文件pg_hba.conf中增加此主机的信息,并且进行客户端接入认证。
配置文件pg_hba.conf存放在数据库的数据目录(../data/xxx-node/)里。hba(host-based authentication)表示是基于主机的认证
# 修改配置文件pg_hba.conf
vim /gbase8c安装路径/data/single_node/pg_hba. conf
# 在文件pg_hba. conf中增加一行,配置允许任意ipv6地址可以以任意用户连接到本机任意数据库
host all all :: sha256
# 然后重启数据库
当然,也可以在gbase8c命令行执行命令完成配置ipv6可访问
# 配置允许 IP 地址为 10.10.0.30 的客户端以“jack”用户连接到本机
gs_guc set -N all -I all -h "host all jack 10.10.0.30/32 sha256"
pg_hba.conf 文件的格式是一行写一条信息,表示一个认证规则,空白和注释(以#开 头)被忽略
文件中一般格式,下面四种之一
local DATABASE USER METHOD [OPTIONS]
host DATABASE USER ADDRESS METHOD [OPTIONS]
hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
gbase8c远程连接
go语言实现远程连接gbase8c
可以用opengauss驱动连接gbase8c
package main
import (
"database/sql"
"fmt"
_ "gitee.com/opengauss/openGauss-connector-go-pq"
)
func main() {
connStr := "host=xx.xx.xx.xx port=5432 user=gbase8c password=GBase123 dbname=postgres sslmode=disable"
db, err := sql.Open("opengauss", connStr)
if err != nil {
fmt.Println("open error:", db)
return
}
defer db.Close()
err = db.Ping()
if err != nil {
fmt.Println("Ping error:", db)
return
}
fmt.Println("success")
}
###运行结果显示success即为连接成功
dbeaver连接gbase8c
dbeaver中默认没有gbase8c相关驱动,得自己创建
新建驱动器
添加jar驱动文件
设置驱动url
类名和url中的驱动名保持一致
新建数据库连接
GBase 8s--基于共享存储的数据库集群
GBase 8s是天津南大通用数据技术股份有限公司自主研发的、成熟稳定的基于共享存储的数据库集群,拥有自主知识产权。产品达到安全数据库四级标准(国际B2),支持国密算法,支持SQL92/99、ODBC、JDBC、ADO.NET、GCI(OCI/OCCI)、Python接口等国际数据库规范和开发接口。支持集中式部署、共享存储高可用部署、两地三中心高可用部署,具备高容量、高并发、高性能等特性。
gbase8s默认值
默认数据库名:testdb
默认端口:9088
默认用户名:gbasedbt
默认密码:GBase123
gbase8s数据库基本操作
启动/停止数据库
# 进入docker拉的gbase8s容器后台
su gbasedbt
cd ~
# 启动命令
oninit -vy
# 停止命令
onmode -ky
查看端口状态
# 查看绑定端口状态
onstat -g ntt
gbase8s配置ipv6和端口可访问
sqlhosts.gbaseserver和onconfig.gbaseserver是gbase8s数据库的配置文件,可修改此文件类更改数据库的ip和端口配置
文件sqlhosts.gbaseserver
文件中,每一行的规则是: 服务名名字 onsoctcp IP地址 端口号(若是这里的服务名被修改了,则onconfig.gbaseserver中对应感到服务名也应一同修改)
vim /opt/GBASE/gbase/etc/sqlhosts.gbaseserver
# gbaseserver onsoctcp 0.0.0.0 9088代表可以通过任意ipv4地址远程访问该数据库
onconfig.gbaseserver文件
文件中,DBSERVERNAME gbaseserver是指定ipv4的服务名为gbaseserver,DBSERVERALIASES gbaseserver_ip6是指定ipv6的服务名为gbaseserver_ip6
# 更改onconfig.gbaseserver文件中的ipv4或ipv6的服务名字
vim /opt/GBASE/gbase/etc/onconfig.gbaseserver
gbase8s远程连接
go语言远程连接gbase8s
查了下,目前gbase8s在go语言中没有写好的连接驱动,若是要通过go语言实现远程连接,需要抓包分析报文,通过模拟dbeaver远程连接gabse8s时的收发包过程,用go语言中的net包中的Write()和Read()函数实现远程连接。
至于发包内容,需要借助dbeaver连接时发的包,然后拼接上自己数据库的用户名密码数据库名信息即可
数据包交互过程中,gabse8s的数据库密码是经过了专用加密的,加密算法在其官方有介绍。可通过官方提供的二进制文件gbspwdenc对密码进行加密。详见该网址GBase 8s 传输加密SSL配置 | GBase 8s开发与管理
dbeaver软件远程连接gabse8s
新建驱动器,添加jar驱动文件
设置驱动url
新建数据库连接
GBase 8a--分布式逻辑数据仓库
南大通用自主研发的GBase 8a MPP Cluster是大数据时代成熟的分析型 MPP 数据库。具有联邦构架、海量数据分布式、高效压缩、高效存储结构、智能索引、灵活的数据分布、在线高性能扩展、高并发、高可用、高安全性、易维护、高效加载等核心优势。
gbase8a默认值
默认数据库名:gbase
默认端口:5258
gbase8a远程连接
go语言远程连接gbase8a
go语言可通过mysql的内置数据库连接函数实现对gbase8a的远程连接
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
ip := "xx.xx.xx.xx" //ip
port := "5258" //port
usr := "root" //数据库用户名
password := "root" //数据库密码
sid := "gbase" //数据库名
connStr := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=true&loc=Local", usr, password, ip, port, sid)
db, err := sql.Open("mysql", connStr)
if err != nil {
fmt.Println("open error", err)
return
}
err = db.Ping() //err为nil即为连接成功
if err != nil {
fmt.Println("ping error", err)
return
}
fmt.Println("success")
}
dbeaver软件远程连接gabse8a
新建驱动器,添加jar驱动文件
设置驱动url
新建数据库连接,输入用户名、密码、数据库名进行连接