Подтвердить что ты не робот

Получить потерянный файл с помощью Vi в MySQL

Я хотел бы знать, как получить файл с помощью 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

Есть ли способ получить потерянный файл?

4b9b3361

Ответ 1

Вот что я добавил в свой .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

Ответ 2

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

Изменить (Большой doah!, удалите рывок о ls -l/tmp/..., вы уже это сделали!)

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

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

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

 q

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

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

Ответ 3

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

В Linux выполните следующие

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

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

Дайте ему попробовать!!!