Mysql

MySQL 輸出文件位置 - 訪問伺服器文件

  • December 22, 2017

我在 Windows7 上執行 MySQL Workbench 6.2 CE。我有一個 200,000 行的輸出表,我需要保存它。我將不得不重複此任務,因此我想迭代以下程式碼:

SELECT * FROM mytable
INTO OUTFILE 'mytable.csv'
FIELDS TERMINATED BY ','
   OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';

這可以保存我的輸出,但我無法訪問它。它似乎保存在伺服器數據庫中。我的桌面上安裝了伺服器,所以我應該能夠訪問它。你知道我怎樣才能找到我保存的 csv 文件的文件路徑嗎?

**Edit1:**我可以在 Workbench GUI 中手動保存它,但我想找到一個基於程式碼的解決方案,因為我必須多次迭代這個過程。

**Edit2:**放置所有文件路徑不起作用。它給出了一個錯誤:Errcode: 13 - Permission denied

PS:對不起,如果這是一個基本問題,我是 MySQL 新手。

如果這是一次性的,您可以執行以下操作以csv使用 MySQL 工作台將結果導出到文件中:

SELECT * FROM mytable

然後結果將出現在結果表(區域)中,您只需使用該區域中的導出按鈕即可:

在此處輸入圖像描述

否則,如果要創建輸出文件,可以使用共享文件夾來完成:

  • 如果它通過網路//my_pc/folder/test.csv,兩台機器都具有讀/寫訪問權限
  • 如果它在同一台伺服器下使案例如d:/test.csv

並將文件保存到您想要的任何位置。

預設情況下(如果未禁用)MySQL 會將文件保存到與數據庫相同的文件夾中,在我的情況下 - sakila

SELECT * FROM actor
INTO OUTFILE 'mytable.csv'
FIELDS TERMINATED BY ','
   OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';

預設位置

您還可以向 my.ini 文件添加限制,例如

secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.7/Uploads"

https://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_secure-file-priv

如果未啟用嚴格模式,您可以使用“任何”路徑(Windows 啟用的任何路徑)作為輸出文件,但不要使用使用者文件夾或根文件夾以避免權限衝突。創建類似 c:/exchange 的東西

引用自:https://dba.stackexchange.com/questions/84821