我想知道如何在MySQL中使用Vi检索文件。我使用以下方式登录:
mysql -uuser -p -hserver -A database
然后我这样做:
\e
编辑器打开,我输入200行的查询,然后我:wq
和\G
(如果我将文件保存为/tmp/sql9SbYQZ saved
),我会看到结果。< / p>
现在,如果我犯了错误或运行其他查询并尝试再次输入\e
,则查询将丢失。
ll /tmp/sql9SbYQZ
ls: /tmp/sql9SbYQZ: No such file or directory
有没有办法检索丢失的文件?
答案 0 :(得分: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 :(得分:1)
使用与mysql,crontab和许多其他人一起使用的vi / m编辑器,工作在tmp文件中完成,正如您从消息中看到的那样。
编辑(Big doah !,删除关于ls -l / tmp / ...的信息,你已经做过了!)
将来解决方案是告诉vim
缓冲区w
到你选择的文件名,即
w! /home/you/scripts/mysql2.sql
然后用
关闭编辑器 q
请注意,w之后可能不需要!
。
我希望这会有所帮助。
答案 2 :(得分:0)
您可以尝试以下方法:
在Linux中,执行以下操作
$ cd
$ cp .mysql_history mystuff.txt
$ vi mystuff.txt
您应该看到.mysql_history文件。 mysql客户端记录所有执行的查询和命令。希望您的查询在那里。
试一试!!!