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 的引号设计为:在单引号中,所有的特殊字符都失去其特殊含义;在双引号中,特殊字符包括:美元符($)、反引号(`)、转义符()、感叹号(!)。
如果密码中没有单引号的,应该都只有外面加单引号就可以解决了;如果密码只有单引号,那么可以将单引号用双引号括起来;如果既有单引号又有美元符($)、反引号(`)、转义符()、感叹号(!)四个特殊字符,那么在特殊字符之前全部加\转义就好了。
例如:
'aaaa\aaaa' 传给 disql 为 aaaa\aaaa。
"aaaa'aaaa" 传给 disql 为 aaaa'aaaa。
"aaa'$aaaa" 传给 disql 为 aaa'$aaaa。
其次,在操作系统要求的基础上,增加 disql 对关键字和双引号的要求。
Ø disql 的关键字符, disql 的要求对连接串的特殊字符需要使用双引号括起来。
例如:密码为 aaaa\aaaa,使用双引号括起来“aaaa\aaaa”, 因为此密码中不含有单引号,根据操作系统的要求直接在最外面加单引号。
例如:用户名为 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转义符使用如下
- linux下,需要使用双引号将密码包含进来,同时外层再使用单引号进行转移,具体例子如下:
./disql SYSDBA/'"abcd@efgh"'@localhost
- windows下,需要使用双引号将密码包含进来,同时对双引号使用\进行转移,具体例子如下:
disql SYSDBA/\"abcd@efgh\"@localhost