第一种方法:

执行前在mysql shell里面运行

tee  output . log

之后你运行任何命令输出都会打在里面。output.log就是你要的文件,名字随便,路径随便




第二种方法:

可以使用expect,比如我常用这样的一个 import.sh 脚本:

#!/usr/bin/env expect 
  if {$argc<2} { 
  send_user "Usage: $argv0 sql_file database" 
  exit 
  } 
  set sql_file [lindex $argv 0] 
  set database [lindex $argv 1] 
  spawn mysql -u root -p 
  expect "password:" 
  send "你的密码\r" 
  expect "mysql>" 
  send "create database $database CHARACTER SET utf8 COLLATE utf8_general_ci;\r" 
  expect "mysql>"
  send "use $database;\r" 
  expect "mysql>"
  send "source $sql_file;\r" 
  expect "mysql>" 
  send "show tables;\r" 
  expect "mysql>" 
  send "quit;\r" 
  expect eof

然后,导入一个数据库并且记录日志就这样就行了:

import .sh  path /to/sqlfile.sql some_database >>  import . log