写点什么

【YashanDB 知识库】如何远程连接、使用 YashanDB?

作者:YashanDB
  • 2024-07-29
    广东
  • 本文字数:2526 字

    阅读完需:约 8 分钟

问题现象

在各个项目实施中,我们经常遇到客户、开发人员需要连接和使用 YashanDB 但不知如何操作的问题,本文旨在介绍远程连接、使用 YashanDB 的几种方式。

问题的风险及影响

无风险

问题影响的版本

历史版本~23.2

问题发生原因

解决方法及规避方式

不需要规避

问题分析和处理过程

方式一 客户端工具 yasql

yasql 简介


yasql 是 YashanDB 的客户端连接管理工具,可以通过此工具连接数据库服务器并对其进行操作和维护,除了具备操作数据库的基本功能,yasql 还提供了若干其他功能,便于用户使用。


一般而言,在部署 YashanDB 的数据库上会同步部署 yasql,其安装目录一般在 $YASDB_HOME/bin 下。


yasql 的一般使用


使用 yasql -H 命令可查看帮助和版本信息。


$ yasql -H
复制代码


使用 yasql -V 命令可查看版本信息。


$ yasql -V
复制代码


常用的登录方式:


  • 方式一:通过输入用户名 、密码、数据库主机名和监听端口等信息登录并连接数据库,格式为"yasql <username>/<password>@<host>:<port>"。

  • 方式二:通过在 ${YASDB_HOME}/client/yasc_service.ini 中定义的连接别名登录并连接数据库,格式为"yasql <username>/<password>@alias"。

  • 方式三:通过操作系统认证方式登录,格式为"yasql / as sysdba"或"yasql <username>/<password> as sysdba",连接到本地 YASDB_DATA 环境变量对应的数据库实例。操作系统认证方式登录需配置后才可使用,配置操作请参考数据库管理手册操作系统身份认证配置


操作示例



使用 Yasql 执行一个 sql 文件


可以通过参数"-f [-e]<filename>" 执行一个 SQL 文件。其中,“-e”显示执行的语句。通过重定向符,还可以记录输出。


操作示例



通过 "!" 执行外部的 shell 命令


可以通过使用 "!“ 在 yasql 中执行外部命令


操作示例



如何退出


通过 "exit" 或者 ctrl+z 的方式退出 yasql


操作示例



在输入 sql 时回退以及上下翻页


安装 rlwrap


sudo yum install rlwrapsudo yum -y install readline*wget http://files.cnblogs.com/files/killkill/rlwrap-0.30.tar.gz.ziptar -xf rlwrap-0.30.tar.gz.zipcd rlwrap-0.30./configuremakesudo make install
复制代码


操作示例



如何单独安装 Yasql


当需要在一台额外的服务器上访问远程的数据库时(或在 windows 本地),可能需要单独安装 yasql。


linux 中安装使用


1 获得安装包 --arm 环境yashandb-client-23.1.3.101-linux-aarch64.tar.gz --X86环境yashandb-client-23.1.3.101-linux-x86_64.tar.gz 2 解压安装包 cd /home/yashanclient/yasql  (例如在这个目录)tar -zxf yashandb-client-23.1.3.101-linux-x86_64.tar.gz 3 获得当前目录,设置环境变量 pwd#例如输出:/home/yashanclient/yasql export LD_LIBRARY_PATH=${解压目录}/lib:$LD_LIBRARY_PATH#例如:export LD_LIBRARY_PATH=/home/yashanclient/yasql/lib:$LD_LIBRARY_PATH 或者永久生效:vi ~/.bashrc写入export LD_LIBRARY_PATH=${解压目录}/lib:$LD_LIBRARY_PATH:wq!source ~/.bashrc 4 连接yashan服务端 cd yasql解压目录/bin ./yasql 用户/密码@IP:端口
复制代码


windows 中安装使用


1 解压 yashandb-client-23.1.3.101-windows-amd64.zip2 设置环境变量 假如解压的目录是:C:\Users\huangsl\Desktop\yashandb-client-23.1.3.101-windows-amd64 添加环境变量:用户环境变量--> 双击Path-->新建: C:\Users\huangsl\Desktop\yashandb-client-23.1.3.101-windows-amd64\lib 保存 3 使用 打开powershell cd C:\Users\huangsl\Desktop\yashandb-client-23.1.3.101-windows-amd64\bin .\yasql username/userpassword@ip:port
复制代码

方式二 使用开发者工具 DBeaver

DBeaver 简介


DBeaver for YashanDB 基于流行的开源图形化工具 DBeaver,在严格遵循 DBeaver Community Edition 的 ASL 开源协议基础上,进行了二次开发和封装,支持管理单机、集群和分布式三种形态的 YashanDB 数据库图形化开发及管理。可以通过下载中心下载:https://download.yashandb.com/download


连接 YashanDB


参考操作文档:DBeaver 建立YashanDB连接

方式三 使用 Yasboot 连接

Yasboot 工具也集成了 yasql 客户端的功能(实际上是调用了 yasql)。


示例 1(连接 yasql 客户端)


#指定节点标识连接$ yasboot sql -n 1-1 -u username -p password -c yashandb #指定IP:PORT连接$ yasboot sql -d username/password@127.0.0.1:1688 # ipv6 需要添加中括号$ yasboot sql -d username/password@[::1]:1688
复制代码


示例 2(执行 SQL 语句)


$ yasboot sql -n 1-1 -u username -p password -c yashandb -s 'select status from v$instance;' STATUS           -----------------OPEN 
复制代码


示例 3(执行 SQL 文件)


$ yasboot sql -d username/password@127.0.0.1:1678 -f get_status.sql --echo
复制代码

方式四 使用高级编程语言的数据库驱动

YashanDB 23.2 版本对外支持的驱动有:JAVA、Python、C、.NET 等


以常用的 JDBC 举例:


//DriverManager方法public static Connection getConnection(String username, String passwd) {        //驱动类。        String driver = "com.yashandb.jdbc.Driver";        //数据库连接描述符。        String sourceURL = "jdbc:yasdb://10.10.10.2:1688/yasdb";        Connection conn = null;                  try {            //加载驱动。            Class.forName(driver);        } catch( Exception e ) {            e.printStackTrace();            return null;        }                  try {             //创建连接。            conn = DriverManager.getConnection(sourceURL, username, passwd);            System.out.println("Connection succeed!");        } catch(Exception e) {            e.printStackTrace();            return null;        }                  return conn;    }  //YasDataSource方法public static Connection getConnDS() {    Connection connect = null;    try {      YasDataSource ads = new YasDataSource();      ads.setURL(url);      connect = ads.getConnection(user, password);    } catch (Exception e) {      e.printStackTrace();    }    return connect;  }
复制代码


其它详细介绍见文档:JDBC驱动

经验总结

用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB知识库】如何远程连接、使用YashanDB?_yashandb_YashanDB_InfoQ写作社区