【问题标题】:Retrieve lost file using Vi in MySQL在 MySQL 中使用 Vi 检索丢失的文件
【发布时间】:2012-02-02 17:12:24
【问题描述】:

我想知道如何在 MySQL 中使用 Vi 检索文件。我使用以下方式登录:

mysql -uuser -p -hserver -A database

然后我做:

\e

编辑器打开,我输入我的 200 行查询,然后我 :wq\G(如果我保存文件,上面写着:/tmp/sql9SbYQZ saved),我看到了结果。

现在,如果我出错或运行不同的查询并尝试再次输入 \e,查询将丢失。

ll /tmp/sql9SbYQZ
ls: /tmp/sql9SbYQZ: No such file or directory

有没有办法找回丢失的文件?

【问题讨论】:

    标签: mysql vim command-line editor vi


    【解决方案1】:

    您可以尝试以下方法:

    在 Linux 中,执行以下操作

    $ cd
    $ cp .mysql_history mystuff.txt
    $ vi mystuff.txt
    

    您应该会看到文件 .mysql_history。 mysql 客户端记录所有执行的查询和命令。希望您的查询在那里。

    试试看!!!

    【讨论】:

      【解决方案2】:

      这是我添加到.vimrc 的内容,以便保存当前查询以防我出错。

      nmap <F7> :w! /tmp/query.sql\| wq!<CR>
      

      这将创建一个到 F7 键的映射(您当然可以更改它)。因此,每次使用edit\e 打开文件时,都使用F7 键进行更改。

      这会将您当前查询的备份保存到/tmp/query.sql,然后保存并关闭临时文件。这样一来,如果出错了,只需重新打开备份文件并重试即可。

      这里还有一个您可能喜欢的链接:http://vim.wikia.com/wiki/Open_the_last_edited_file

      【讨论】:

        【解决方案3】:

        使用与 mysql、crontab 和许多其他工具一起使用的 vi/m 编辑器,工作在 tmp 文件中完成,正如您从消息中看到的那样。

        编辑(太棒了!删除关于 ls -l /tmp/... 的废话,你已经这样做了!)

        将来的解决方案是告诉vimw 缓冲区到您选择的文件名,即

         w! /home/you/scripts/mysql2.sql
        

        然后用

        关闭编辑器
         q
        

        请注意,您可能不需要在 w 之后使用 !

        我希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 2015-09-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-01
          • 2012-04-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多