2010-11-10 10 views
20

Estoy tratando de ejecutar foo.sql usando el comando de origen en MySQL.Resultados de fuente MySQL de salida al archivo de registro

cuando se escribe el comando, el archivo tiene su origen en consecuencia:

mysql> source ~/foo.sql 

Ahora, hay una gran cantidad de declaraciones que se ejecuta en este archivo y me gustaría opinar sobre el éxito/fracaso de estas declaraciones. ¿Hay alguna manera de canalizar los resultados de las declaraciones a un archivo de registro, foo.txt?

estoy pensando algo en la línea de:

mysql> source ~/foo.sql into outfile ~/foo.txt 

Sin embargo, al escribir este comando parece dar por supuesto que todo después de la declaración de origen es un nombre de archivo; así que está tratando de obtener un archivo llamado '~/foo.sql en el archivo de salida ~/foo.txt', que obviamente no existe.

+0

¿Ha comprobado el comando 'pager'? – Konerak

Respuesta

37

desde tu cliente de MySQL, el tipo

tee session.out 

partir de ese momento , todas las E/S de su sesión de cliente actual se escriben en el archivo 'session.out'

+0

Gracias, esto era exactamente lo que estaba buscando. – Isaac

+10

Además, si desea detener el resultado, simplemente escriba 'notee' ([fuente] (http://dev.mysql.com/doc/refman/5.0/en/mysql-commands.html)) –

+0

¡Excelente respuesta! ! – Amol

4

Se podía hacerlo desde la línea de comandos:

$ mysql -p dbname <foo.sql> foo.txt 
2

utilizar la línea de comandos:

mysql -p dbname < ~/foo.sql > ~/foo.txt 
+0

Intenté esto, pero el archivo generado no contiene nada. – Isaac

+1

¿Se cargó la base de datos como lo deseaba? Solo se agregarán mensajes de error al archivo. Oh, también se detendrá en el primer error, a menos que le des una opción de línea de comando para seguir pasando los errores. – SorcyCat

+0

Se completó sin error al principio. Luego lo intenté de nuevo y configuré max_allowed_packet en 5M por lo que sería un error intencional. Obtuvo un error, pero foo.txt no incluyó este error. – Isaac

Cuestiones relacionadas