MySQL Export--導出數據


===========================================================

SELECT INTO OUTFILE
語法格式:

SELECT [columns]
INTO 
OUTFILE 'FileName'
[{FIELDS|COLUMNS} TERMINATED BY 'String']
[[OPTIONALLY] ENCLOSED BY 'char']
[LINES [STARTING BY 'string'] [TERMINATED BY 'string']]
FROM TABLE_NAME WHERE ...

在將選擇的記錄導出到.csv文件時,出現提示“The MySQL server is running with the --secure-file-priv option so it cannot execute this statement”。
解決辦法:
在配置文件的[mysqld]部分增加secure_file_priv="/",然后重啟既可以將數據導出到任何目錄。
參考連接:https://dev.mysql.com/doc/refman/5.7/en/server-options.html

 

由於Linux的換行符為\n,而Windows 的換行符為\r\n ,因此在導出供windows使用的數據文件時,要指定換行符。

Windows下csv文件默認使用gbk字符集,因此導出腳本為:

SELECT HOST,USER 
INTO OUTFILE '/tmp/tb001.csv' CHARACTER SET gbk  
FIELDS TERMINATED BY ','   
OPTIONALLY ENCLOSED BY '"'   
ESCAPED BY '\\'    
LINES TERMINATED BY '\r\n'   
FROM mysql.user;  

 

===========================================================

mysql命令導出

使用mysql命令來執行命令或命令文件,並將執行結果輸出到文件中。

相關參數:

--verbose: 輸出結果中包含執行命令
--vertical:垂直方式顯示執行結果(類似於\G)
--unbuffered: 每執行一條SQL語句都刷新執行結果。
--skip-column-names:輸出結果中不包含列名
--batch:禁用交互模式
--silent:數據列使用tab分隔,數據行使用換行顯示
--execute:執行命令並退出
--force: 執行命令出錯后仍繼續執行

-v參數:顯示執行命令
-vv參數:顯示執行命令+影響行數
-vvv參數:顯示執行命令+影響行數+執行時間

 

使用mysql執行命令導出csv文件:

/export/servers/mysql/bin/mysql \
--host="127.0.0.1" \
--port=3358 \
--user="root" \
--password="root" \
--database="mysql" \
--batch \
--execute "select host,user from mysql.user where user='root';" \
| sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" \
> /tmp/mysql_user.csv

 

使用mysql執行命令文件並輸出每條SQL及其執行結果:

/export/servers/mysql/bin/mysql \
--host="127.0.0.1" \
--port=3358 \
--user="root" \
--password="root" \
--database="mysql" \
--verbose \
--batch \
</tmp/mysql_user.sql \
1>/tmp/mysql_user.log \
2>/tmp/mysql_user.err

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM