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

来源:这里教程网 时间:2026-03-03 20:25:52 作者:

问题现象

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

问题的风险及影响

无风险

问题影响的版本

历史版本~23.2

问题发生原因

解决方法及规避方式

不需要规避

问题分析和处理过程

方式一 客户端工具yasql

yasql简介

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

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

yasql的一般使用

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

$ yasql -H

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

$ yasql -V

常用的登录方式:

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

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

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

    操作示例

    使用Yasql执行一个sql文件

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

    操作示例

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

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

    操作示例

    如何退出

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

    操作示例

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

    安装rlwrap

    sudo yum install rlwrap
    sudo yum -y install readline*
    wget http://files.cnblogs.com/files/killkill/rlwrap-0.30.tar.gz.zip
    tar -xf rlwrap-0.30.tar.gz.zipcd rlwrap-0.30
    ./configure
    make
    sudo 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.zip
    2 设置环境变量
     
    假如解压的目录是: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驱动

    经验总结

  • 相关推荐