2012-01-04 10 views
13

Me gustaría saber cómo recuperar un archivo utilizando Vi en MySQL. Me he registrado en el uso de:Recuperar archivo perdido utilizando Vi en MySQL

mysql -uuser -p -hserver -A database 

entonces yo:

\e 

Se abre el editor y yo escriba mi consulta de 200 líneas, entonces yo :wq y \G (si salvo el archivo que dice: /tmp/sql9SbYQZ saved) y veo el resultado.

Ahora, si me equivoco o ejecuto una consulta diferente y trato de escribir \e nuevamente, la consulta se pierde.

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

¿Hay alguna manera de recuperar el archivo perdido?

Respuesta

30

Esto es lo que agregué a mi .vimrc para guardar la consulta actual en caso de que haya cometido un error.

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

Esto creará un mapa para la tecla F7 (puede cambiarlo por supuesto). Por lo tanto, cada vez que abra un archivo usando edit o \e, cámbielo utilizando la clave F7.

Esto guardará una copia de seguridad de su consulta actual en /tmp/query.sql y luego guardará y cerrará el archivo temporal. De esta forma, si comete un error, solo vuelve a abrir el archivo de respaldo e inténtelo de nuevo.

Aquí también hay un enlace que le puede gustar: http://vim.wikia.com/wiki/Open_the_last_edited_file

0

Aquí es algo que puede probar:

En Linux, haga lo siguiente

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

Debería ver el .mysql_history el archivo. El cliente mysql registra todas las consultas y comandos ejecutados. Con suerte, su consulta está allí.

¡Pruébalo!

1

Con el editor de vi/m utilizado con mysql, crontab y muchos otros, el trabajo se realiza en un archivo tmp, como puede ver en los mensajes.

Editar (Big DOAH !, eliminar costra sobre ls -l/tmp/..., que ya hizo eso!)

En el futuro la solución es decirle a vimw la memoria intermedia a una el nombre del archivo de su chosing, es decir

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

cierre el editor con

q 

Nota no puede nee d el ! después de w.

Espero que esto ayude.

Cuestiones relacionadas