2011-09-17 146 views
2

我在MySQL和想改變當前的工作目錄。我試圖執行:MySQL的系統命令

mysql> system cd './my_dir' 

但是,這似乎並不奏效。有沒有人遇到過類似的問題?

+0

操作系統'windows'或'linux'?因爲'system'命令只能在'unix/linux'平臺上運行。 –

+0

操作系統= linux – Alex

+0

你想達到什麼目的? – thomasfedb

回答

5

系統將會生成一個子進程來運行shell命令.....

當前工作目錄是一個進程級屬性....所以你不能在父母從改變子進程。這就是爲什麼它不起作用。

我簡要地掃描了MySQL的文檔在http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html但沒有看到改變工作目錄的直接CD命令。我認爲,一個冒險的人可以寫一個....

+0

我明白了。有一種方法可以在mysql中更改當前的工作目錄嗎? – Alex

+0

似乎應該有一個「cd」或「chdir」命令,即使沒有記錄。你嘗試過那些嗎?如果您可以在「C」中編寫擴展名或想要修改源文件,則可能需要執行的操作是使用目錄名稱調用chdir系統調用。請參閱http://linux.die.net/man/2/chdir – Paul

+1

通常,在啓動MySQL shell之前,您將切換到您選擇的目錄,如包含腳本的目錄。 – Claude

-2

什麼你要找的是逃生shell命令:\!

mysql>\! cd ./my_dir 

你甚至可以用它來逃脫外殼完全然後回到mysql環境。

mysql>\! bash 
bash>cd ./my_dir 
bash>exit 
mysql>SELECT * ALL FROM <table>; 
+0

嘿@MrSampson,很好的第一個答案。 – thomasfedb

+0

我想我應該補充說,這似乎適用於所有**,但**更改本地工作目錄。哎呀。當你從bash退出並執行\! pwd顯示mysql執行的原始目錄。 – MrSampson

+2

那是因爲當你做'\! bash'你正在創建一個新的shell環境。 – thomasfedb

2

如果你想改變你的當前工作目錄的腳本,然後使用& &光盤和劇本之間,它會改變目錄,然後如果這是成功,將執行第二個命令。

mysql> SYSTEM cd /home && ls 
+0

這是有效的,並打印'/ home'的內容,但不會更改當前的工作目錄。例如。當你進入mysql shell的時候,mysql將查找與CWD相關的文件 – shturm