• 达梦数据库常见问题-命令行工具-disql工具


    1、DM数据库disql连接工具的存放位置?

          数据库disql连接工具的存放位置,在Linux环境下假设数据库安装目录在/opt/dmdbms/目录下,进入/opt/dmdbms/bin下执行./disql输入对应的用户名和密码即可访问数据库。

           DM命令行工具位于达梦安装目录的bin下,图形化工具位于达梦安装目录的tool下。我们以linux环境为例,假设达梦数据库安装目录为/opt/dmdbms下,则命令行工具都在/opt/dmdbms/bin下,常用的命令行工具包括并不限于:

    ​ (1) 实例初始化工具dminit

    ​ (2) 命令行客户端工具disql

    ​ (3) 逻辑导入导出工具dimp/dexp

    ​ (4) 数据库校验工具dmdbchk

    ​ (5) core文件读取工具dmrdc

    ​ (6) 达梦恢复管理工具dmrman

    ​ (7) 脱机备份/还原工具dmbackup/dmrestore

    ​ (8) 快速数据装载工具dmfldr

    ​ (9) 集群监控工具dmmonitor

    ​ (10)数据库重演工具dreplay

    ​ (11)解析日志工具dmlcvt

    2、达梦的命令行终端工具如何使用?

          达梦提供了类似于Oracle的sqlplus的终端工具,即达梦命令行客户端工具disql,工具的路径在安装路径下的../dmdbms/bin/下,格式:disql 用户名/密码@IP:端口号

    基本使用如下(路径以实际环境为准):

      

     

        当密码后面不跟@ip:port时,则默认为@127.0.0.1:5236

    3、disql登录含特殊字符的密码怎么处理/怎么处理@等转义符

    详细描述型:

    (备注:详细描述型可以帮助您更了解达梦SQL语言处理特殊字符转义字符,如果您急需解决问题,请往下翻到“简单描述型”)

    1、不同操作系统

    举例1:Windows操作系统

    创建用户

    create user "TELLER" identified by "TELLER@/!12";
    
    grant "PUBLIC","RESOURCE" to "TELLER";用户权限
    

    使用disql登录报错如下

     

     disql正确的登录如下:

           Ø disql 的关键字符, disql 的要求对连接串的特殊字符需要使用双引号括起来”aaaa/aaaa”, 操作系统的要求需要再在最外加双引号和转义”””aaaa/aaaa”””。例如:用户名为 user01,密码为 aaaa/aaaa,那么连接串要写成: disql user01/”””aaaa/aaaa”””

           Ø 空格,需要使用双引号括起来作为一个整体(这是操作系统的要求)。例如:用户名为 user01,密码为 aaaa aaaa ,处理方法同样需要前后各加3个双引号双引号, disql 要求对双引号需要使用双引号括起来,同时双引号需要转义”aaaa””aaaa”;操作系统要求再对双引号转义和最外层加双引号”””aaaa””””aaaa”””。例如:用户名为 user01,密码为 aaaa”aaaa ,那么连接串要写成:

    disqluser01/”””aaaa””””aaaa”””
    

    举例2:Linux操作系统

    创建用户

    create user "TELLER" identified by "TELLER@/!12";
    
    grant "PUBLIC","RESOURCE" to "TELLER"; --用户权限
    

      disql登录报错如下:

     Linux登录输入反斜杠结果显示w如下。

    原因是字体选择问题导致。

    linux,shell输入反斜杠显示'W'。

    solution:

    字体必须为"Courier New"。

    正确的登录方式如下:

    bash 的引号设计为:在单引号中,所有的特殊字符都失去其特殊含义;在双引号中,特殊字符包括:美元符($)、反引号(`)、转义符()、感叹号(!)。

    如果密码中没有单引号的,应该都只有外面加单引号就可以解决了;如果密码只有单引号,那么可以将单引号用双引号括起来;如果既有单引号又有美元符($)、反引号(`)、转义符()、感叹号(!)四个特殊字符,那么在特殊字符之前全部加转义就好了。

    例如:

    'aaaaaaaa' 传给 disql 为 aaaaaaaa。

    "aaaa'aaaa" 传给 disql 为 aaaa'aaaa。

    "aaa'$aaaa" 传给 disql 为 aaa'$aaaa。

    其次,在操作系统要求的基础上,增加 disql 对关键字和双引号的要求。

    Ø disql 的关键字符, disql 的要求对连接串的特殊字符需要使用双引号括起来。

    例如:密码为 aaaaaaaa,使用双引号括起来“aaaaaaaa”, 因为此密码中不含有单引号,根据操作系统的要求直接在最外面加单引号。

    例如:用户名为 user01,密码为 aaaa/aaaa,那么连接串要写成:

    ./disql user01/’”aaaa/aaaa”’

    Ø 双引号, disql 要求对双引号需要使用双引号括起来,同时双引号需要转义。 例如:密码为 aaa”aaaa,那么根据 disql 的要求加双引号同时转义

    为”aaa””aaaa”,因为没有单引号,根据操作系统的要求直接加单引号。例如:用户名为 user01,密码为 aaa”aaaa,那么连接串要写成: ./disql

    user01/’”aaa””aaaa”’

    Ø 单引号,根据操作系统的要求,只能将单引号放入双引号中。

    例如:用户名为user01,密码为 aaaa'aaaa,那么连接串要写成:

    ./disql user01/”aaaa'aaaa”
    

    Ø 单引号+操作系统下的特殊字符,根据操作系统的要求,因为单引号只能放在双引号内,同时双引号中还有一些特殊字符不能被识别需要加反斜杠转义。

    例如: 用户名为 user01,密码为 aaa'$aaaa,使用双引号括起来,同时对$加反斜杠转义。那么连接串要写成:

    ./disql user01/”aaa'$aaaa”
    

    Ø 单引号+双引号,根据操作系统的要求,单引号需要放在双引号中,在双引号中表示双引号则使用反斜杠转义双引号。

    例如: 用户名为 user01,密码为aaa”'aaaa,根据 disql 的要求双引号作为特殊字符,需要使用双引号在括起来,同时使用双引号对双引号转义”aaa””'aaaa”;同时考虑操作系统的要求,因为含有单引号,只能将整个密码放入双引号中,同时对双引号使用反斜杠转义,

    那么连接串要写成:

    ./disql user01/””aaa””'aaaa””
    

    如何转义双引号?

    disql 的要求使用双引号对双引号内的双引号转义。

    WINDOWS 命令行,使用双引号或者反斜杠对双引号内的双引号转义。

    LINUX 命令行,使用反斜杠对双引号内的双引号转义

    简单描述型:

    有时候密码包含了@等特殊字符导致disql无法直接连接和运行。需要通过转移符来处理。disql转义符使用如下

    1. linux下,需要使用双引号将密码包含进来,同时外层再使用单引号进行转移,具体例子如下:

    ​ ./disql SYSDBA/'"abcd@efgh"'@localhost

    1. windows下,需要使用双引号将密码包含进来,同时对双引号使用进行转移,具体例子如下:

    ​ disql SYSDBA/"abcd@efgh"@localhost

  • 相关阅读:
    python学习笔记之--read、readline和readlines
    目录操作习题
    递归习题
    文件操作练习题
    HandleBase句柄的5种写法
    ContextBase
    BasegoSort
    PrototypePra原型_设计订单保存
    DesignPattenTemplate模板模式
    DesignPattenStrategy策略模式
  • 原文地址:https://www.cnblogs.com/zqntx/p/14006808.html
Copyright © 2020-2023  润新知