【问题标题】:mysql system commandmysql系统命令
【发布时间】:2011-11-19 09:36:33
【问题描述】:

我在 MySQL 中,想更改当前工作目录。我尝试执行:

mysql> system cd './my_dir'

但是,这似乎不起作用。有没有人遇到过类似的问题?

【问题讨论】:

  • 操作系统windowslinux ?因为system 命令只适用于unix/linux 平台。
  • 你想达到什么目的?

标签: mysql system cd


【解决方案1】:

系统将生成一个子进程来运行 shell 命令.....

当前工作目录是一个进程级别的属性....所以你不能在父进程中从子进程中更改它。这就是它不起作用的原因。

我在http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html 简要扫描了 MySQL 文档,但没有看到更改工作目录的直接 CD 命令。我认为一个喜欢冒险的人可以写一个....

【讨论】:

  • 我明白了。进入 mysql 后有没有办法更改当前工作目录?
  • 看起来确实应该有一个“cd”或“chdir”命令,即使没有记录。你试过那些吗?如果您可以在“C”中编写扩展名,或者想要修改源代码,那么它可能需要做的就是使用目录名称调用 chdir 系统调用。见linux.die.net/man/2/chdir
  • 通常你会在启动 MySQL shell 之前切换到你选择的目录,比如包含你的脚本的目录。
  • 是的,这样会更容易。但也许他们有充分的理由需要我们没有预料到的 chdir。
  • @Claude 好点!我是一个自学mysql的新手。我试图保存示例数据库eclipse.org/birt/documentation/sample-database.php 并试图弄清楚如何将目录更改为保存脚本的位置。仅在切换到脚本所在的目录后才看到您的评论并启动了 shell。谢谢!
【解决方案2】:

如果您想更改脚本的当前工作目录,请在 CD 和脚本之间使用 &&,以便更改目录,然后如果成功,它将执行第二个命令。

mysql> SYSTEM cd /home && ls

【讨论】:

  • 这是有效的并打印/home 的内容,但不会更改当前工作目录。例如。当你进入 mysql shell 时,mysql 将寻找与你所在的 CWD 相关的文件
【解决方案3】:

您正在寻找的是转义到 shell 命令:\!

mysql>\! cd ./my_dir

你甚至可以用它完全逃到shell,然后回到mysql环境。

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

【讨论】:

  • 嘿@MrSampson,很好的第一个答案。
  • 我想我应该补充一点,这似乎适用于更改本地工作目录的所有内容。嗯。当您退出 bash 并执行 \! pwd 它显示了执行 mysql 的原始目录。
  • 那是因为当您执行\! bash 时,您正在创建一个新的shell 环境。
  • 是的,这并不能真正解决提问者(和我)试图解决的问题,但我投了赞成票只是因为这太邪恶了!谢谢,@MrSampson。 :)
猜你喜欢
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-10
相关资源
最近更新 更多