磐维数据库,简称"PanWeiDB"。是中国移动信息技术中心首个基于中国本土开源数据库打造的面向ICT基础设施的自研数据库产品。其产品内核能力基于华为openGauss开源软件,并进一步提升了系统稳定性。
本文将指导在磐维数据库中如何使用gsql工具连接至数据库服务器。
1. 概述
磐维数据库连接方式多种多样,比较常用的连接方式有驱动连接、图形化工具(也属于驱动连接)、linux命令行工具。
常见的驱动连接方式有:
- jdbc:适用于Java程序连接至磐维数据库
- odbc:一个标准的数据库访问接口,它定义了一组函数和数据结构,用于在应用程序和数据库之间建立连接、执行SQL语句和获取结果集等操作。ODBC底层通过C语言实现,所以最常见用于C++连接数据库,同时也提供了其他高级语言如Java、Python、C#、PHP等连接、操作数据库的接口。
- psycopg2:适用于Python程序连接至磐维数据库
适配磐维数据库的图形化工具:dbeaver
Linux命令行工具:gsql
2. gsql工具获取
磐维1.0安装包中解压后有一个名为xxxtools.tar.gz的工具包,里面包含gsql和备份等工具;
磐维2.0安装包中解压后有一个名为xxx.tar.bz2的压缩包,里面的bin文件夹包含了gsql工具;
在已经安装磐维数据库的服务器获取gsql工具,路径为:$GAUSSHOME/bin/gsql
[omm@panwei1 ~]$ cd $GAUSSHOME/bin
[omm@panwei1 bin]$ ll gsql
-rwx------. 1 omm dbgrp 751936 Oct 15 2022 gsql
gsql工具依赖lib库文件:
[omm@panwei1 bin]$ ldd gsql
linux-vdso.so.1 => (0x00007fff7ad45000)
libreadline.so.6 => /lib64/libreadline.so.6 (0x00002aee7d08e000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00002aee7d2d4000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002aee7d50b000)
libssl.so.1.1 => /database/panweidb/app/lib/libssl.so.1.1 (0x00002aee7d70f000)
libcrypto.so.1.1 => /database/panweidb/app/lib/libcrypto.so.1.1 (0x00002aee7d99f000)
librt.so.1 => /lib64/librt.so.1 (0x00002aee7de61000)
libz.so.1 => /database/panweidb/app/lib/libz.so.1 (0x00002aee7e069000)
libcjson.so.1 => /database/panweidb/app/lib/libcjson.so.1 (0x00002aee7e280000)
libcurl.so.4 => /database/panweidb/app/lib/libcurl.so.4 (0x00002aee7e48b000)
libgssapi_krb5_gauss.so.2 => /database/panweidb/app/lib/libgssapi_krb5_gauss.so.2 (0x00002aee7e712000)
libgssrpc_gauss.so.4 => /database/panweidb/app/lib/libgssrpc_gauss.so.4 (0x00002aee7e977000)
libkrb5_gauss.so.3 => /database/panweidb/app/lib/libkrb5_gauss.so.3 (0x00002aee7eb9a000)
libkrb5support_gauss.so.0 => /database/panweidb/app/lib/libkrb5support_gauss.so.0 (0x00002aee7ee96000)
libk5crypto_gauss.so.3 => /database/panweidb/app/lib/libk5crypto_gauss.so.3 (0x00002aee7f0a5000)
libcom_err_gauss.so.3 => /database/panweidb/app/lib/libcom_err_gauss.so.3 (0x00002aee7f2ea000)
libpq_ce.so.5 => /database/panweidb/app/lib/libpq_ce.so.5 (0x00002aee7f4ee000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00002aee7f8cf000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00002aee7faf6000)
libstdc++.so.6 => /database/panweidb/app/lib/libstdc++.so.6 (0x00002aee7fd20000)
libm.so.6 => /lib64/libm.so.6 (0x00002aee800a3000)
libgcc_s.so.1 => /database/panweidb/app/lib/libgcc_s.so.1 (0x00002aee803a5000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aee805bd000)
libc.so.6 => /lib64/libc.so.6 (0x00002aee807d9000)
/lib64/ld-linux-x86-64.so.2 (0x00002aee7cbb2000)
libfreebl3.so => /lib64/libfreebl3.so (0x00002aee80ba7000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00002aee80daa000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00002aee80fae000)
从上面可以看到gsql工具除了依赖/lib64下部分系统库文件,还依赖$GAUSSHOME/lib下的磐维自带库文件,将gsql工具和依赖的库文件打包传到对应的linux客户端,使用操作系统用户便可以通过gsql连接至磐维数据库
3. gsql连接实践
- 服务端打包gsql工具
[omm@panwei1 ~]$ cd $GAUSSHOME
[omm@panwei1 app]$ pwd
/database/panweidb/app
[omm@panwei1 app]$ tar -zcf gsql.tar.gz ./bin/gsql ./lib/*
- 传送gsql工具到客户端
[omm@panwei1 app]$ su root
Password:
[root@panwei1 app]# scp gsql.tar.gz test1@127.0.0.1:~/
[root@panwei1 app]# su - test1
Last login: Wed Jun 19 15:22:03 CST 2024 on pts/1
[test1@panwei1 ~]$ ll
total 25212
-rw------- 1 test1 test1 25814862 Jun 19 15:23 gsql.tar.gz
tip: 为了方便测试,本文使用服务端作为客户端
- 客户端配置
[test1@panwei1 ~]$ tar -zxf gsql.tar.gz
[test1@panwei1 ~]$ echo 'export PATH=/home/test1/bin:$PATH' >> ~/.bashrc
[test1@panwei1 ~]$ echo 'export LD_LIBRARY_PATH=/home/test1/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
[test1@panwei1 ~]$ source ~/.bashrc
[test1@panwei1 ~]$ gsql -V
gsql (PanWeiDB(openGauss) 1.0.0 build 9a7e96bc) compiled at 2022-10-15 20:54:36 commit 0 last mr
- 服务端配置白名单
[omm@panwei1 ~]$ gs_guc reload -N all -I all -h "host all all 127.0.0.1/32 sha256"
- 创建业务用户
注意,omm初始用户不能用作远程连接使用
[omm@panwei1 ~]$ gsql -c "create user test1 password 'Panwei@123';"
- 客户端gsql连接
[test1@panwei1 ~]$ gsql -h 127.0.0.1 -p 17700 -U test1 -d postgres
Password for user test1:
gsql ((PanWeiDB(openGauss) 1.0.0 build 9a7e96bc) compiled at 2022-10-15 20:54:36 commit 0 last mr )
SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
Type "help" for help.
PanWeiDB=> create table c1(id serial);
NOTICE: CREATE TABLE will create implicit sequence "c1_id_seq" for serial column "c1.id"
CREATE TABLE
4. 总结
除了常用的驱动连接方式外,磐维数据库还提供了客户端命令行工具连接方式,gsql具有强大的元命令,可以帮助运维人员更方便地进行维护工作。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




