簡體   English   中英

如何查看從mysql命令行工具遠程執行的查詢的輸出?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM