使用Vi在MySQL中恢复丢失的文件

13

我想知道如何在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

有没有办法恢复丢失的文件?

3个回答

30

为了在查询时保存当前状态以防出错,我在我的.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


1

使用vi/m编辑器与mysql、crontab等一起使用时,工作是在一个临时文件中完成的,正如您从消息中看到的那样。

编辑(大声喊叫!删除关于ls -l /tmp/...的垃圾,你已经做过了!)

将来的解决方案是告诉vim将缓冲区写入您选择的文件名,即:

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

然后使用以下命令关闭编辑器

 q

请注意,在 w 后面可能不需要加上 ! 符号。

希望这可以帮助到您。


0

这里有一个你可以尝试的方法:

在Linux中,执行以下操作

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

你应该能看到文件.mysql_history。mysql客户端记录了所有执行的查询和命令。希望你的查询在其中。
试一下吧!!!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接