Получить потерянный файл, используя Vi в MySQL - PullRequest
13 голосов
/ 04 января 2012

Я хотел бы знать, как получить файл, используя Vi в MySQL. Я вошел в систему с помощью:

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 голосов
/ 05 января 2012

Вот что я добавил к своему .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 голос
/ 05 января 2012

С помощью редактора vi / m, используемого с mysql, crontab и многими другими, работа выполняется в файле tmp, как видно из ваших сообщений.

Редактировать (Большая чушь! Удалите излишние слова о ls -l / tmp / ..., вы уже сделали это!)

В будущем решение состоит в том, чтобысообщите vim to w в буфер имя выбранного вами файла, т.е.

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

Затем закройте редактор с помощью

 q

Обратите внимание, что вам может не понадобиться ! после w.

Надеюсь, это поможет.

0 голосов
/ 04 января 2012

Вот что вы можете попробовать:

В Linux сделайте следующее

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

Вы должны увидеть файл .mysql_history. Клиент mysql записывает все выполненные запросы и команды. Надеюсь, ваш запрос там.

Попробуй !!!

...