| 代碼如下 | 復制代碼 |
| mysql>select * from xi_table into outfile ’d:test.xls’; |
|
導出為txt文件:
| 代碼如下 | 復制代碼 |
| select * from xi_table into outfile ’d:test.txt’; |
|
默認使用tab分割字段,記錄使用n分割。可以自定義三個參數。
| 代碼如下 | 復制代碼 |
| SELECT * FROMhx_9enjoy INTO OUTFILE '/tmp/9enjoy_hx.txt' FIELDS TERMINATED BY ',' OPTIONALLYENCLOSED BY '"' LINES TERMINATED BY 'n'; |
|
即使用,分割字段,雙引號限定字段內容,n分割記錄。
還可以指定某些條件的記錄輸出:
| 代碼如下 | 復制代碼 |
| SELECT * FROMhx_9enjoy WHERE id < 100 INTO OUTFILE '/tmp/9enjoy_100.txt' |
|
如果打開時excel中出現亂碼我們可以導出時設置編碼為gb2312 在服務器端使用iconv來進行編碼轉換:
| 代碼如下 | 復制代碼 |
| iconv -futf8 -tgb2312 -otest2.xls test.xls |
|
如果linux中可能會碰到mysql into outfile ERROR : Can't create/write to file 錯誤,這種問題就是權限的問題了
解決辦法
| 代碼如下 | 復制代碼 |
| sudo vi /etc/apparmor.d/usr.sbin.mysqld | |
在里面添加/data的可寫目錄,如下:
| 代碼如下 | 復制代碼 |
| ... /usr/sbin/mysqld { ... /var/log/mysql/ r, /var/log/mysql/* rw, /var/run/mysqld/mysqld.pid w, /var/run/mysqld/mysqld.sock w, /data/* rw, } |
|
然后重新載入:
| 代碼如下 | 復制代碼 |
| sudo /etc/init.d/apparmor reload/restart | |
還需要重啟mysql,否則會出些莫名其妙的錯誤,如:
ERROR 1286 (42000) at line 1: Unknown table engine 'InnoDB'
重啟mysql:
| 代碼如下 | 復制代碼 |
| sudo service mysql stop |
|
