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