今天经理要我导出生产环境的一些相关数据,因为肯定不能直接连客户服务器上的数据库,所以在没有图形界面的情况下,只能SSH然后在命令行中查询结果,但我从未试过怎么将select出来的数据导出为文本,而且经理又急着用,远程连接又不稳定,要用的sql语句也没准备好,真是焦头烂额啊。好在容易搜到相关资料,在此做个笔记。
其实挺简单,就一个命令
select * from my_table into outfile '/tmp/abc.xls';
然后就是ftp把文件弄回本地了。
另外,还有一种导出的方式,相较于上者而言,这种可以对已经存在的文件直接覆盖。
//使用outfile的方法
mysql> select 1 into outfile '/tmp/t1.txt';
Query OK, 1 row affected (0.00 sec)
mysql> select 1 into outfile '/tmp/t1.txt';
ERROR 1086 (HY000): File '/tmp/t1.txt' already exists
//使用pager的方法
mysql> pager cat > /tmp/t1.txt
PAGER set to 'cat > /tmp/t1.txt'
mysql> select 1;\! cat /tmp/t1.txt
1 row in set (0.00 sec)
+---+
| 1 |
+---+
| 1 |
+---+