linux 下MySQL命令列匯出csv檔案格式

南国之恋發表於2024-06-13

從資料庫伺服器匯出
1、登入mysql

mysql -uroot -p
2、切換資料庫

use database
3、匯出檔案命令

SELECT id, column1, column2 FROM table
INTO OUTFILE '/tmp/mysqlfiles/table.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY 'n'

select * from cd_ret_well_collect into outfile '/var/lib/mysql-files/test.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

匯出檔案的許可權不夠不能複製用下面的命令sudo chmod 777 /var/lib/mysql-files/test.csv
將 資料輸出到 /tmp/mysqlfiles/table.csv,或者我們將其配置到的任何目錄。 我們需要確保執行 MySQL 的使用者(通常是 root)擁有該目錄的所有權和寫入許可權。

我們還需要確保 secure_file_priv 設定允許 MySQL 訪問該目錄。 預設情況下,這會阻止 SQL 查詢的讀寫訪問。 如果我們的程式碼容易受到 SQL 注入的攻擊,任何潛在的攻擊者都只能訪問 MySQL,而不能訪問檔案系統的其餘部分。

如果沒有配置改引數會報錯,如下:

我們可以透過編輯 MySQL 配置檔案(通常位於 /etc/my.cnf)來將特定目錄列入白名單,包括

[mysqld]

secure-file-priv = "/tmp/mysqlfiles"

這將允許 MySQL 讀取和寫入 /tmp/mysqlfiles/ (我們必須使用 mkdir 建立)。 一旦 MySQL 可以匯出檔案,我們就應該能夠執行查詢並輸出 CSV 檔案。

匯出檔案如下圖:
————————————————

版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。

原文連結:https://blog.csdn.net/qingyou2006/article/details/130193149

相關文章