[英]How to see the output of a query which is executed remotely from mysql command line tool?
我正在使用mysql命令行工具使用以下命令連接到遠程計算機上存在的mysql服務器:
mysql -u username -ppassword -h host_ip -P port_no --verbose < sql file on windows
我在遠程服務器上執行的Windows上有一個.sql文件。 我已使用冗長的命令來顯示文件中存在的和正在執行的sql命令。
現在的問題是,當我執行上面的命令時,如果執行成功,它將僅返回提示,當出現錯誤時,它將顯示錯誤。 我想要的是,當命令成功執行時,它應該顯示服務器給出的響應,就像您在mysql中執行以下命令一樣:
create table xyz;
執行完上述命令后,mysql返回“表xyz創建成功” 。 我希望在命令行提示符下顯示類似的內容。
我也使用了-E選項,但是它不起作用。
要執行上述mysql命令,我已經下載了“ Windows(x86,xx位),ZIP存檔”,然后將命令提示符中的當前目錄更改為上述下載文件中的bin文件夾。
執行每個select語句將返回成功或失敗。 對於DDL / DML語句,它返回受影響的行數。 您應在執行每條語句以詳細顯示結果后捕獲這些值。
有關CREATE TABLE語句結果捕獲的示例 :
在您的SQL腳本文件中,在每個可執行語句旁邊添加一個類似於以下內容的語句。
select concat('table x ', if(row_count()=0, '', 'not '), 'created' ) 'result';
工作示例 :
假設您已經在Desktop
的腳本文件mysql_stmt.sql
編寫了以下語句。
select row_count();
create table y( x in6 );
select concat('table y ', if(row_count()=0, '', 'not '), 'created' ) 'result';
create table y( x int );
select concat('table y ', if(row_count()=0, '', 'not '), 'created' ) 'result';
-- C:\Users\Ravinder\Desktop\mysql_stmt.sql
在MySQL命令提示符下,發出以下命令:
\. C:\Users\Ravinder\Desktop\mysql_stmt.sql
您將在屏幕上看到詳細的結果。
Shell提示中的示例 :
在Shell提示符下也將是相同的行為。 但是,如果您在語法上有任何錯誤查詢或違反約束的語句等情況,執行將中止。在這種情況下,您可能需要做更多的練習來識別和解決問題。 您可能還可以選擇抑制此類故障並指示繼續執行下一條語句,但是我不確定,也沒有嘗試過。
MyShell>mysql -u root -p --verbose test < "C:\Users\Ravinder\Desktop\mysql_stmt.sql"
Enter password: *****
--------------
select row_count()
--------------
row_count()
-1
--------------
create table y( x int )
--------------
--------------
select concat('table y ', if(row_count()=0, '', 'not '), 'created' ) 'result'
--------------
result
table y created
MyShell>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.