達夢數據庫常見問題-命令行工具-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 的引號設計為:在單引號中,所有的特殊字符都失去其特殊含義;在雙引號中,特殊字符包括:美元符($)、反引號(`)、轉義符()、感嘆號(!)。

如果密碼中沒有單引號的,應該都只有外面加單引號就可以解決了;如果密碼只有單引號,那么可以將單引號用雙引號括起來;如果既有單引號又有美元符($)、反引號(`)、轉義符()、感嘆號(!)四個特殊字符,那么在特殊字符之前全部加\轉義就好了。

例如:

'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轉義符使用如下

  1. linux下,需要使用雙引號將密碼包含進來,同時外層再使用單引號進行轉移,具體例子如下:

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

  1. windows下,需要使用雙引號將密碼包含進來,同時對雙引號使用\進行轉移,具體例子如下:

​ disql SYSDBA/\"abcd@efgh\"@localhost


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM