2011-09-17 108 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