暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

磐维数据库Linux客户端工具之gsql

原创 陆凯 2024-06-19
1678

磐维数据库,简称"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连接实践

  1. 服务端打包gsql工具
[omm@panwei1 ~]$ cd $GAUSSHOME
[omm@panwei1 app]$ pwd
/database/panweidb/app
[omm@panwei1 app]$ tar -zcf gsql.tar.gz ./bin/gsql ./lib/*
  1. 传送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: 为了方便测试,本文使用服务端作为客户端

  1. 客户端配置
[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  
  1. 服务端配置白名单
[omm@panwei1 ~]$ gs_guc reload -N all -I all -h "host all all 127.0.0.1/32 sha256"
  1. 创建业务用户
    注意,omm初始用户不能用作远程连接使用
[omm@panwei1 ~]$ gsql -c "create user test1 password 'Panwei@123';"
  1. 客户端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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论